// export am , al , oth ; export ams00 , ams01 , ams02 , ams03 , ams04 , ams05 , ams06 ; export amv0_ch , amv0_wp , amv0_drv , amv1_ch , amv1_wp , amv1_drv , amv2_cl ; export john_vychod ; export debug , guard_out_ , penalty , maxpenalty , penalties ; var ambudovy , ambudovyt , ambudovyxy ; function set_vars ; var tmp , tmp1 ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
   4: PPUSH
// am = 1 ;
   5: LD_ADDR_EXP 1
   9: PUSH
  10: LD_INT 1
  12: ST_TO_ADDR
// al = 7 ;
  13: LD_ADDR_EXP 2
  17: PUSH
  18: LD_INT 7
  20: ST_TO_ADDR
// oth = 4 ;
  21: LD_ADDR_EXP 3
  25: PUSH
  26: LD_INT 4
  28: ST_TO_ADDR
// takoviti = [ ] ;
  29: LD_ADDR_EXP 26
  33: PUSH
  34: EMPTY
  35: ST_TO_ADDR
// moji = [ ] ;
  36: LD_ADDR_EXP 44
  40: PUSH
  41: EMPTY
  42: ST_TO_ADDR
// mojivip = [ ] ;
  43: LD_ADDR_EXP 45
  47: PUSH
  48: EMPTY
  49: ST_TO_ADDR
// ostatnivip = [ ] ;
  50: LD_ADDR_EXP 46
  54: PUSH
  55: EMPTY
  56: ST_TO_ADDR
// pocetmist = 11 ;
  57: LD_ADDR_EXP 49
  61: PUSH
  62: LD_INT 11
  64: ST_TO_ADDR
// mista = [ [ 57 , 97 ] , [ 54 , 51 ] , [ 24 , 22 ] , [ 104 , 112 ] , [ 53 , 13 ] , [ 149 , 108 ] , [ 165 , 96 ] , [ 75 , 3 ] , [ 137 , 62 ] , [ 122 , 38 ] , [ 100 , 11 ] ] ;
  65: LD_ADDR_EXP 47
  69: PUSH
  70: LD_INT 57
  72: PUSH
  73: LD_INT 97
  75: PUSH
  76: EMPTY
  77: LIST
  78: LIST
  79: PUSH
  80: LD_INT 54
  82: PUSH
  83: LD_INT 51
  85: PUSH
  86: EMPTY
  87: LIST
  88: LIST
  89: PUSH
  90: LD_INT 24
  92: PUSH
  93: LD_INT 22
  95: PUSH
  96: EMPTY
  97: LIST
  98: LIST
  99: PUSH
 100: LD_INT 104
 102: PUSH
 103: LD_INT 112
 105: PUSH
 106: EMPTY
 107: LIST
 108: LIST
 109: PUSH
 110: LD_INT 53
 112: PUSH
 113: LD_INT 13
 115: PUSH
 116: EMPTY
 117: LIST
 118: LIST
 119: PUSH
 120: LD_INT 149
 122: PUSH
 123: LD_INT 108
 125: PUSH
 126: EMPTY
 127: LIST
 128: LIST
 129: PUSH
 130: LD_INT 165
 132: PUSH
 133: LD_INT 96
 135: PUSH
 136: EMPTY
 137: LIST
 138: LIST
 139: PUSH
 140: LD_INT 75
 142: PUSH
 143: LD_INT 3
 145: PUSH
 146: EMPTY
 147: LIST
 148: LIST
 149: PUSH
 150: LD_INT 137
 152: PUSH
 153: LD_INT 62
 155: PUSH
 156: EMPTY
 157: LIST
 158: LIST
 159: PUSH
 160: LD_INT 122
 162: PUSH
 163: LD_INT 38
 165: PUSH
 166: EMPTY
 167: LIST
 168: LIST
 169: PUSH
 170: LD_INT 100
 172: PUSH
 173: LD_INT 11
 175: PUSH
 176: EMPTY
 177: LIST
 178: LIST
 179: PUSH
 180: EMPTY
 181: LIST
 182: LIST
 183: LIST
 184: LIST
 185: LIST
 186: LIST
 187: LIST
 188: LIST
 189: LIST
 190: LIST
 191: LIST
 192: ST_TO_ADDR
// areas = [ area2_bobby , area1_simms , area11_joan , area3_cyrus , area10_gary , area4_lisa , area5_frank , area9_yamoko , area6_markc , area7_tim , area8_denis ] ;
 193: LD_ADDR_EXP 48
 197: PUSH
 198: LD_INT 3
 200: PUSH
 201: LD_INT 2
 203: PUSH
 204: LD_INT 12
 206: PUSH
 207: LD_INT 4
 209: PUSH
 210: LD_INT 11
 212: PUSH
 213: LD_INT 5
 215: PUSH
 216: LD_INT 6
 218: PUSH
 219: LD_INT 10
 221: PUSH
 222: LD_INT 7
 224: PUSH
 225: LD_INT 8
 227: PUSH
 228: LD_INT 9
 230: PUSH
 231: EMPTY
 232: LIST
 233: LIST
 234: LIST
 235: LIST
 236: LIST
 237: LIST
 238: LIST
 239: LIST
 240: LIST
 241: LIST
 242: LIST
 243: ST_TO_ADDR
// guard_out_ = [ [ 149 , 63 ] , [ 150 , 65 ] , [ 151 , 67 ] , [ 152 , 69 ] , [ 154 , 73 ] , [ 153 , 71 ] ] ;
 244: LD_ADDR_EXP 20
 248: PUSH
 249: LD_INT 149
 251: PUSH
 252: LD_INT 63
 254: PUSH
 255: EMPTY
 256: LIST
 257: LIST
 258: PUSH
 259: LD_INT 150
 261: PUSH
 262: LD_INT 65
 264: PUSH
 265: EMPTY
 266: LIST
 267: LIST
 268: PUSH
 269: LD_INT 151
 271: PUSH
 272: LD_INT 67
 274: PUSH
 275: EMPTY
 276: LIST
 277: LIST
 278: PUSH
 279: LD_INT 152
 281: PUSH
 282: LD_INT 69
 284: PUSH
 285: EMPTY
 286: LIST
 287: LIST
 288: PUSH
 289: LD_INT 154
 291: PUSH
 292: LD_INT 73
 294: PUSH
 295: EMPTY
 296: LIST
 297: LIST
 298: PUSH
 299: LD_INT 153
 301: PUSH
 302: LD_INT 71
 304: PUSH
 305: EMPTY
 306: LIST
 307: LIST
 308: PUSH
 309: EMPTY
 310: LIST
 311: LIST
 312: LIST
 313: LIST
 314: LIST
 315: LIST
 316: ST_TO_ADDR
// penalty = 0 ;
 317: LD_ADDR_EXP 21
 321: PUSH
 322: LD_INT 0
 324: ST_TO_ADDR
// maxpenalty = 25 ;
 325: LD_ADDR_EXP 22
 329: PUSH
 330: LD_INT 25
 332: ST_TO_ADDR
// penalties = [ [ b_depot , 25 ] ] ;
 333: LD_ADDR_EXP 23
 337: PUSH
 338: LD_INT 0
 340: PUSH
 341: LD_INT 25
 343: PUSH
 344: EMPTY
 345: LIST
 346: LIST
 347: PUSH
 348: EMPTY
 349: LIST
 350: ST_TO_ADDR
// penalties = penalties ^ [ [ b_warehouse , 25 ] ] ;
 351: LD_ADDR_EXP 23
 355: PUSH
 356: LD_EXP 23
 360: PUSH
 361: LD_INT 1
 363: PUSH
 364: LD_INT 25
 366: PUSH
 367: EMPTY
 368: LIST
 369: LIST
 370: PUSH
 371: EMPTY
 372: LIST
 373: ADD
 374: ST_TO_ADDR
// penalties = penalties ^ [ [ b_factory , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 375: LD_ADDR_EXP 23
 379: PUSH
 380: LD_EXP 23
 384: PUSH
 385: LD_INT 3
 387: PUSH
 388: LD_INT 10
 390: PUSH
 391: LD_INT 8
 393: PUSH
 394: LD_INT 6
 396: PUSH
 397: EMPTY
 398: LIST
 399: LIST
 400: LIST
 401: PUSH
 402: LD_OWVAR 67
 406: ARRAY
 407: PUSH
 408: EMPTY
 409: LIST
 410: LIST
 411: PUSH
 412: EMPTY
 413: LIST
 414: ADD
 415: ST_TO_ADDR
// penalties = penalties ^ [ [ b_barracks , [ 20 , 15 , 10 ] [ difficulty ] ] ] ;
 416: LD_ADDR_EXP 23
 420: PUSH
 421: LD_EXP 23
 425: PUSH
 426: LD_INT 5
 428: PUSH
 429: LD_INT 20
 431: PUSH
 432: LD_INT 15
 434: PUSH
 435: LD_INT 10
 437: PUSH
 438: EMPTY
 439: LIST
 440: LIST
 441: LIST
 442: PUSH
 443: LD_OWVAR 67
 447: ARRAY
 448: PUSH
 449: EMPTY
 450: LIST
 451: LIST
 452: PUSH
 453: EMPTY
 454: LIST
 455: ADD
 456: ST_TO_ADDR
// penalties = penalties ^ [ [ b_lab_full , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 457: LD_ADDR_EXP 23
 461: PUSH
 462: LD_EXP 23
 466: PUSH
 467: LD_INT 8
 469: PUSH
 470: LD_INT 10
 472: PUSH
 473: LD_INT 8
 475: PUSH
 476: LD_INT 6
 478: PUSH
 479: EMPTY
 480: LIST
 481: LIST
 482: LIST
 483: PUSH
 484: LD_OWVAR 67
 488: ARRAY
 489: PUSH
 490: EMPTY
 491: LIST
 492: LIST
 493: PUSH
 494: EMPTY
 495: LIST
 496: ADD
 497: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_track , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 498: LD_ADDR_EXP 23
 502: PUSH
 503: LD_EXP 23
 507: PUSH
 508: LD_INT 16
 510: PUSH
 511: LD_INT 8
 513: PUSH
 514: LD_INT 6
 516: PUSH
 517: LD_INT 4
 519: PUSH
 520: EMPTY
 521: LIST
 522: LIST
 523: LIST
 524: PUSH
 525: LD_OWVAR 67
 529: ARRAY
 530: PUSH
 531: EMPTY
 532: LIST
 533: LIST
 534: PUSH
 535: EMPTY
 536: LIST
 537: ADD
 538: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_gun , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 539: LD_ADDR_EXP 23
 543: PUSH
 544: LD_EXP 23
 548: PUSH
 549: LD_INT 17
 551: PUSH
 552: LD_INT 8
 554: PUSH
 555: LD_INT 6
 557: PUSH
 558: LD_INT 4
 560: PUSH
 561: EMPTY
 562: LIST
 563: LIST
 564: LIST
 565: PUSH
 566: LD_OWVAR 67
 570: ARRAY
 571: PUSH
 572: EMPTY
 573: LIST
 574: LIST
 575: PUSH
 576: EMPTY
 577: LIST
 578: ADD
 579: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_noncombat , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 580: LD_ADDR_EXP 23
 584: PUSH
 585: LD_EXP 23
 589: PUSH
 590: LD_INT 19
 592: PUSH
 593: LD_INT 8
 595: PUSH
 596: LD_INT 6
 598: PUSH
 599: LD_INT 4
 601: PUSH
 602: EMPTY
 603: LIST
 604: LIST
 605: LIST
 606: PUSH
 607: LD_OWVAR 67
 611: ARRAY
 612: PUSH
 613: EMPTY
 614: LIST
 615: LIST
 616: PUSH
 617: EMPTY
 618: LIST
 619: ADD
 620: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_radar , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 621: LD_ADDR_EXP 23
 625: PUSH
 626: LD_EXP 23
 630: PUSH
 631: LD_INT 20
 633: PUSH
 634: LD_INT 8
 636: PUSH
 637: LD_INT 6
 639: PUSH
 640: LD_INT 4
 642: PUSH
 643: EMPTY
 644: LIST
 645: LIST
 646: LIST
 647: PUSH
 648: LD_OWVAR 67
 652: ARRAY
 653: PUSH
 654: EMPTY
 655: LIST
 656: LIST
 657: PUSH
 658: EMPTY
 659: LIST
 660: ADD
 661: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_siberium , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 662: LD_ADDR_EXP 23
 666: PUSH
 667: LD_EXP 23
 671: PUSH
 672: LD_INT 21
 674: PUSH
 675: LD_INT 8
 677: PUSH
 678: LD_INT 6
 680: PUSH
 681: LD_INT 4
 683: PUSH
 684: EMPTY
 685: LIST
 686: LIST
 687: LIST
 688: PUSH
 689: LD_OWVAR 67
 693: ARRAY
 694: PUSH
 695: EMPTY
 696: LIST
 697: LIST
 698: PUSH
 699: EMPTY
 700: LIST
 701: ADD
 702: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_computer , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 703: LD_ADDR_EXP 23
 707: PUSH
 708: LD_EXP 23
 712: PUSH
 713: LD_INT 24
 715: PUSH
 716: LD_INT 8
 718: PUSH
 719: LD_INT 6
 721: PUSH
 722: LD_INT 4
 724: PUSH
 725: EMPTY
 726: LIST
 727: LIST
 728: LIST
 729: PUSH
 730: LD_OWVAR 67
 734: ARRAY
 735: PUSH
 736: EMPTY
 737: LIST
 738: LIST
 739: PUSH
 740: EMPTY
 741: LIST
 742: ADD
 743: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_laser , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 744: LD_ADDR_EXP 23
 748: PUSH
 749: LD_EXP 23
 753: PUSH
 754: LD_INT 25
 756: PUSH
 757: LD_INT 8
 759: PUSH
 760: LD_INT 6
 762: PUSH
 763: LD_INT 4
 765: PUSH
 766: EMPTY
 767: LIST
 768: LIST
 769: LIST
 770: PUSH
 771: LD_OWVAR 67
 775: ARRAY
 776: PUSH
 777: EMPTY
 778: LIST
 779: LIST
 780: PUSH
 781: EMPTY
 782: LIST
 783: ADD
 784: ST_TO_ADDR
// penalties = penalties ^ [ [ b_oil_power , [ 15 , 11 , 8 ] [ difficulty ] ] ] ;
 785: LD_ADDR_EXP 23
 789: PUSH
 790: LD_EXP 23
 794: PUSH
 795: LD_INT 26
 797: PUSH
 798: LD_INT 15
 800: PUSH
 801: LD_INT 11
 803: PUSH
 804: LD_INT 8
 806: PUSH
 807: EMPTY
 808: LIST
 809: LIST
 810: LIST
 811: PUSH
 812: LD_OWVAR 67
 816: ARRAY
 817: PUSH
 818: EMPTY
 819: LIST
 820: LIST
 821: PUSH
 822: EMPTY
 823: LIST
 824: ADD
 825: ST_TO_ADDR
// penalties = penalties ^ [ [ b_siberite_power , 25 ] ] ;
 826: LD_ADDR_EXP 23
 830: PUSH
 831: LD_EXP 23
 835: PUSH
 836: LD_INT 28
 838: PUSH
 839: LD_INT 25
 841: PUSH
 842: EMPTY
 843: LIST
 844: LIST
 845: PUSH
 846: EMPTY
 847: LIST
 848: ADD
 849: ST_TO_ADDR
// penalties = penalties ^ [ [ b_oil_mine , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 850: LD_ADDR_EXP 23
 854: PUSH
 855: LD_EXP 23
 859: PUSH
 860: LD_INT 29
 862: PUSH
 863: LD_INT 8
 865: PUSH
 866: LD_INT 6
 868: PUSH
 869: LD_INT 4
 871: PUSH
 872: EMPTY
 873: LIST
 874: LIST
 875: LIST
 876: PUSH
 877: LD_OWVAR 67
 881: ARRAY
 882: PUSH
 883: EMPTY
 884: LIST
 885: LIST
 886: PUSH
 887: EMPTY
 888: LIST
 889: ADD
 890: ST_TO_ADDR
// penalties = penalties ^ [ [ b_siberite_mine , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 891: LD_ADDR_EXP 23
 895: PUSH
 896: LD_EXP 23
 900: PUSH
 901: LD_INT 30
 903: PUSH
 904: LD_INT 8
 906: PUSH
 907: LD_INT 6
 909: PUSH
 910: LD_INT 4
 912: PUSH
 913: EMPTY
 914: LIST
 915: LIST
 916: LIST
 917: PUSH
 918: LD_OWVAR 67
 922: ARRAY
 923: PUSH
 924: EMPTY
 925: LIST
 926: LIST
 927: PUSH
 928: EMPTY
 929: LIST
 930: ADD
 931: ST_TO_ADDR
// penalties = penalties ^ [ [ b_bunker , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 932: LD_ADDR_EXP 23
 936: PUSH
 937: LD_EXP 23
 941: PUSH
 942: LD_INT 32
 944: PUSH
 945: LD_INT 10
 947: PUSH
 948: LD_INT 8
 950: PUSH
 951: LD_INT 6
 953: PUSH
 954: EMPTY
 955: LIST
 956: LIST
 957: LIST
 958: PUSH
 959: LD_OWVAR 67
 963: ARRAY
 964: PUSH
 965: EMPTY
 966: LIST
 967: LIST
 968: PUSH
 969: EMPTY
 970: LIST
 971: ADD
 972: ST_TO_ADDR
// penalties = penalties ^ [ [ b_turret , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 973: LD_ADDR_EXP 23
 977: PUSH
 978: LD_EXP 23
 982: PUSH
 983: LD_INT 33
 985: PUSH
 986: LD_INT 10
 988: PUSH
 989: LD_INT 8
 991: PUSH
 992: LD_INT 6
 994: PUSH
 995: EMPTY
 996: LIST
 997: LIST
 998: LIST
 999: PUSH
1000: LD_OWVAR 67
1004: ARRAY
1005: PUSH
1006: EMPTY
1007: LIST
1008: LIST
1009: PUSH
1010: EMPTY
1011: LIST
1012: ADD
1013: ST_TO_ADDR
// penalties = penalties ^ [ [ b_control_tower , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
1014: LD_ADDR_EXP 23
1018: PUSH
1019: LD_EXP 23
1023: PUSH
1024: LD_INT 36
1026: PUSH
1027: LD_INT 10
1029: PUSH
1030: LD_INT 8
1032: PUSH
1033: LD_INT 6
1035: PUSH
1036: EMPTY
1037: LIST
1038: LIST
1039: LIST
1040: PUSH
1041: LD_OWVAR 67
1045: ARRAY
1046: PUSH
1047: EMPTY
1048: LIST
1049: LIST
1050: PUSH
1051: EMPTY
1052: LIST
1053: ADD
1054: ST_TO_ADDR
// ambudovy = filterallunits ( [ [ f_side , am ] , [ f_type , unit_building ] ] ) ;
1055: LD_ADDR_LOC 1
1059: PUSH
1060: LD_INT 22
1062: PUSH
1063: LD_EXP 1
1067: PUSH
1068: EMPTY
1069: LIST
1070: LIST
1071: PUSH
1072: LD_INT 21
1074: PUSH
1075: LD_INT 3
1077: PUSH
1078: EMPTY
1079: LIST
1080: LIST
1081: PUSH
1082: EMPTY
1083: LIST
1084: LIST
1085: PPUSH
1086: CALL_OW 69
1090: ST_TO_ADDR
// ambudovyt = [ ] ;
1091: LD_ADDR_LOC 2
1095: PUSH
1096: EMPTY
1097: ST_TO_ADDR
// ambudovyxy = [ ] ;
1098: LD_ADDR_LOC 3
1102: PUSH
1103: EMPTY
1104: ST_TO_ADDR
// for tmp in ambudovy do
1105: LD_ADDR_VAR 0 2
1109: PUSH
1110: LD_LOC 1
1114: PUSH
1115: FOR_IN
1116: IFFALSE 1182
// begin ambudovyt = ambudovyt ^ [ getbtype ( tmp ) ] ;
1118: LD_ADDR_LOC 2
1122: PUSH
1123: LD_LOC 2
1127: PUSH
1128: LD_VAR 0 2
1132: PPUSH
1133: CALL_OW 266
1137: PUSH
1138: EMPTY
1139: LIST
1140: ADD
1141: ST_TO_ADDR
// ambudovyxy = ambudovyxy ^ [ [ getx ( tmp ) , gety ( tmp ) ] ] ;
1142: LD_ADDR_LOC 3
1146: PUSH
1147: LD_LOC 3
1151: PUSH
1152: LD_VAR 0 2
1156: PPUSH
1157: CALL_OW 250
1161: PUSH
1162: LD_VAR 0 2
1166: PPUSH
1167: CALL_OW 251
1171: PUSH
1172: EMPTY
1173: LIST
1174: LIST
1175: PUSH
1176: EMPTY
1177: LIST
1178: ADD
1179: ST_TO_ADDR
// end ;
1180: GO 1115
1182: POP
1183: POP
// ams00 = [ 4 , 6 , 8 ] [ difficulty ] ;
1184: LD_ADDR_EXP 4
1188: PUSH
1189: LD_INT 4
1191: PUSH
1192: LD_INT 6
1194: PUSH
1195: LD_INT 8
1197: PUSH
1198: EMPTY
1199: LIST
1200: LIST
1201: LIST
1202: PUSH
1203: LD_OWVAR 67
1207: ARRAY
1208: ST_TO_ADDR
// ams01 = [ 3 , 5 , 7 ] [ difficulty ] ;
1209: LD_ADDR_EXP 5
1213: PUSH
1214: LD_INT 3
1216: PUSH
1217: LD_INT 5
1219: PUSH
1220: LD_INT 7
1222: PUSH
1223: EMPTY
1224: LIST
1225: LIST
1226: LIST
1227: PUSH
1228: LD_OWVAR 67
1232: ARRAY
1233: ST_TO_ADDR
// ams02 = [ 4 , 6 , 8 ] [ difficulty ] ;
1234: LD_ADDR_EXP 6
1238: PUSH
1239: LD_INT 4
1241: PUSH
1242: LD_INT 6
1244: PUSH
1245: LD_INT 8
1247: PUSH
1248: EMPTY
1249: LIST
1250: LIST
1251: LIST
1252: PUSH
1253: LD_OWVAR 67
1257: ARRAY
1258: ST_TO_ADDR
// ams03 = [ 4 , 6 , 8 ] [ difficulty ] ;
1259: LD_ADDR_EXP 7
1263: PUSH
1264: LD_INT 4
1266: PUSH
1267: LD_INT 6
1269: PUSH
1270: LD_INT 8
1272: PUSH
1273: EMPTY
1274: LIST
1275: LIST
1276: LIST
1277: PUSH
1278: LD_OWVAR 67
1282: ARRAY
1283: ST_TO_ADDR
// ams04 = [ 4 , 6 , 8 ] [ difficulty ] ;
1284: LD_ADDR_EXP 8
1288: PUSH
1289: LD_INT 4
1291: PUSH
1292: LD_INT 6
1294: PUSH
1295: LD_INT 8
1297: PUSH
1298: EMPTY
1299: LIST
1300: LIST
1301: LIST
1302: PUSH
1303: LD_OWVAR 67
1307: ARRAY
1308: ST_TO_ADDR
// ams05 = [ 3 , 5 , 7 ] [ difficulty ] ;
1309: LD_ADDR_EXP 9
1313: PUSH
1314: LD_INT 3
1316: PUSH
1317: LD_INT 5
1319: PUSH
1320: LD_INT 7
1322: PUSH
1323: EMPTY
1324: LIST
1325: LIST
1326: LIST
1327: PUSH
1328: LD_OWVAR 67
1332: ARRAY
1333: ST_TO_ADDR
// ams06 = [ 4 , 6 , 8 ] [ difficulty ] ;
1334: LD_ADDR_EXP 10
1338: PUSH
1339: LD_INT 4
1341: PUSH
1342: LD_INT 6
1344: PUSH
1345: LD_INT 8
1347: PUSH
1348: EMPTY
1349: LIST
1350: LIST
1351: LIST
1352: PUSH
1353: LD_OWVAR 67
1357: ARRAY
1358: ST_TO_ADDR
// amv0_ch = [ us_medium_wheeled , us_medium_wheeled , us_medium_wheeled ] [ difficulty ] ;
1359: LD_ADDR_EXP 11
1363: PUSH
1364: LD_INT 2
1366: PUSH
1367: LD_INT 2
1369: PUSH
1370: LD_INT 2
1372: PUSH
1373: EMPTY
1374: LIST
1375: LIST
1376: LIST
1377: PUSH
1378: LD_OWVAR 67
1382: ARRAY
1383: ST_TO_ADDR
// amv0_wp = [ us_gatling_gun , us_gatling_gun , us_gatling_gun ] [ difficulty ] ;
1384: LD_ADDR_EXP 12
1388: PUSH
1389: LD_INT 4
1391: PUSH
1392: LD_INT 4
1394: PUSH
1395: LD_INT 4
1397: PUSH
1398: EMPTY
1399: LIST
1400: LIST
1401: LIST
1402: PUSH
1403: LD_OWVAR 67
1407: ARRAY
1408: ST_TO_ADDR
// amv0_drv = [ 4 , 6 , 8 ] [ difficulty ] ;
1409: LD_ADDR_EXP 13
1413: PUSH
1414: LD_INT 4
1416: PUSH
1417: LD_INT 6
1419: PUSH
1420: LD_INT 8
1422: PUSH
1423: EMPTY
1424: LIST
1425: LIST
1426: LIST
1427: PUSH
1428: LD_OWVAR 67
1432: ARRAY
1433: ST_TO_ADDR
// amv1_ch = [ us_medium_wheeled , us_medium_wheeled , us_medium_wheeled ] [ difficulty ] ;
1434: LD_ADDR_EXP 14
1438: PUSH
1439: LD_INT 2
1441: PUSH
1442: LD_INT 2
1444: PUSH
1445: LD_INT 2
1447: PUSH
1448: EMPTY
1449: LIST
1450: LIST
1451: LIST
1452: PUSH
1453: LD_OWVAR 67
1457: ARRAY
1458: ST_TO_ADDR
// amv1_wp = [ us_machine_gun , us_gatling_gun , us_machine_gun ] [ difficulty ] ;
1459: LD_ADDR_EXP 15
1463: PUSH
1464: LD_INT 2
1466: PUSH
1467: LD_INT 4
1469: PUSH
1470: LD_INT 2
1472: PUSH
1473: EMPTY
1474: LIST
1475: LIST
1476: LIST
1477: PUSH
1478: LD_OWVAR 67
1482: ARRAY
1483: ST_TO_ADDR
// amv1_drv = [ 4 , 6 , 8 ] [ difficulty ] ;
1484: LD_ADDR_EXP 16
1488: PUSH
1489: LD_INT 4
1491: PUSH
1492: LD_INT 6
1494: PUSH
1495: LD_INT 8
1497: PUSH
1498: EMPTY
1499: LIST
1500: LIST
1501: LIST
1502: PUSH
1503: LD_OWVAR 67
1507: ARRAY
1508: ST_TO_ADDR
// amv2_cl = [ 4 , 7 , 8 ] [ difficulty ] ;
1509: LD_ADDR_EXP 17
1513: PUSH
1514: LD_INT 4
1516: PUSH
1517: LD_INT 7
1519: PUSH
1520: LD_INT 8
1522: PUSH
1523: EMPTY
1524: LIST
1525: LIST
1526: LIST
1527: PUSH
1528: LD_OWVAR 67
1532: ARRAY
1533: ST_TO_ADDR
// if difficulty = 3 then
1534: LD_OWVAR 67
1538: PUSH
1539: LD_INT 3
1541: EQUAL
1542: IFFALSE 1641
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_btype , b_bunker ] , [ f_btype , b_turret ] ] ] ) ;
1544: LD_ADDR_VAR 0 2
1548: PUSH
1549: LD_INT 22
1551: PUSH
1552: LD_EXP 1
1556: PUSH
1557: EMPTY
1558: LIST
1559: LIST
1560: PUSH
1561: LD_INT 2
1563: PUSH
1564: LD_INT 30
1566: PUSH
1567: LD_INT 32
1569: PUSH
1570: EMPTY
1571: LIST
1572: LIST
1573: PUSH
1574: LD_INT 30
1576: PUSH
1577: LD_INT 33
1579: PUSH
1580: EMPTY
1581: LIST
1582: LIST
1583: PUSH
1584: EMPTY
1585: LIST
1586: LIST
1587: LIST
1588: PUSH
1589: EMPTY
1590: LIST
1591: LIST
1592: PPUSH
1593: CALL_OW 69
1597: ST_TO_ADDR
// for tmp1 in tmp do
1598: LD_ADDR_VAR 0 3
1602: PUSH
1603: LD_VAR 0 2
1607: PUSH
1608: FOR_IN
1609: IFFALSE 1639
// setblevel ( [ tmp1 ] , getblevel ( tmp1 ) + 2 ) ;
1611: LD_VAR 0 3
1615: PUSH
1616: EMPTY
1617: LIST
1618: PPUSH
1619: LD_VAR 0 3
1623: PPUSH
1624: CALL_OW 267
1628: PUSH
1629: LD_INT 2
1631: PLUS
1632: PPUSH
1633: CALL_OW 241
1637: GO 1608
1639: POP
1640: POP
// end ; end ;
1641: LD_VAR 0 1
1645: RET
// export contacted , zabil ; starting begin debug = false ;
1646: LD_ADDR_EXP 19
1650: PUSH
1651: LD_INT 0
1653: ST_TO_ADDR
// setbname ( amware0 , alpha ) ;
1654: LD_INT 5
1656: PPUSH
1657: LD_STRING alpha
1659: PPUSH
1660: CALL_OW 500
// set_vars ;
1664: CALL 0 0 0
// zustalo_malo = 5 ;
1668: LD_ADDR_LOC 4
1672: PUSH
1673: LD_INT 5
1675: ST_TO_ADDR
// john_vychod = false ;
1676: LD_ADDR_EXP 18
1680: PUSH
1681: LD_INT 0
1683: ST_TO_ADDR
// zabil = false ;
1684: LD_ADDR_EXP 25
1688: PUSH
1689: LD_INT 0
1691: ST_TO_ADDR
// disable ( 02 ) ;
1692: LD_INT 2
1694: DISABLE_MARKED
// disable ( 04 ) ;
1695: LD_INT 4
1697: DISABLE_MARKED
// revealfogarea ( al , celamapa ) ;
1698: LD_EXP 2
1702: PPUSH
1703: LD_INT 14
1705: PPUSH
1706: CALL_OW 332
// revealfogarea ( am , celamapa ) ;
1710: LD_EXP 1
1714: PPUSH
1715: LD_INT 14
1717: PPUSH
1718: CALL_OW 332
// contacted = 0 ;
1722: LD_ADDR_EXP 24
1726: PUSH
1727: LD_INT 0
1729: ST_TO_ADDR
// prepare_americans ;
1730: CALL 4364 0 0
// if debug then
1734: LD_EXP 19
1738: IFFALSE 1747
// msg ( BACHA debug is ON! ) ;
1740: LD_STRING BACHA debug is ON!
1742: PPUSH
1743: CALL_OW 100
// end ;
1747: END
// export takoviti ; on unitdestroyed ( un ) do var tmp , tmp1 , tmp2 ;
1748: LD_INT 0
1750: PPUSH
1751: PPUSH
1752: PPUSH
// begin if ( un = john ) and not debug then
1753: LD_VAR 0 1
1757: PUSH
1758: LD_EXP 27
1762: EQUAL
1763: PUSH
1764: LD_EXP 19
1768: NOT
1769: AND
1770: IFFALSE 1779
// youlost ( JMM ) ;
1772: LD_STRING JMM
1774: PPUSH
1775: CALL_OW 104
// if not ( un in ( moji ^ mojivip ) ) and ( gettype ( un ) = unit_human ) then
1779: LD_VAR 0 1
1783: PUSH
1784: LD_EXP 44
1788: PUSH
1789: LD_EXP 45
1793: ADD
1794: IN
1795: NOT
1796: PUSH
1797: LD_VAR 0 1
1801: PPUSH
1802: CALL_OW 247
1806: PUSH
1807: LD_INT 1
1809: EQUAL
1810: AND
1811: IFFALSE 1821
// zabil = true ;
1813: LD_ADDR_EXP 25
1817: PUSH
1818: LD_INT 1
1820: ST_TO_ADDR
// if un in takoviti then
1821: LD_VAR 0 1
1825: PUSH
1826: LD_EXP 26
1830: IN
1831: IFFALSE 1888
// for tmp = 1 to pocetmist do
1833: LD_ADDR_VAR 0 2
1837: PUSH
1838: DOUBLE
1839: LD_INT 1
1841: DEC
1842: ST_TO_ADDR
1843: LD_EXP 49
1847: PUSH
1848: FOR_TO
1849: IFFALSE 1886
// if un = takoviti [ tmp ] then
1851: LD_VAR 0 1
1855: PUSH
1856: LD_EXP 26
1860: PUSH
1861: LD_VAR 0 2
1865: ARRAY
1866: EQUAL
1867: IFFALSE 1884
// begin settag ( tmp , - 1 ) ;
1869: LD_VAR 0 2
1873: PPUSH
1874: LD_INT 1
1876: NEG
1877: PPUSH
1878: CALL_OW 109
// break ;
1882: GO 1886
// end ;
1884: GO 1848
1886: POP
1887: POP
// tmp1 = 0 ;
1888: LD_ADDR_VAR 0 3
1892: PUSH
1893: LD_INT 0
1895: ST_TO_ADDR
// for tmp = 1 to ( 0 + ambudovy ) do
1896: LD_ADDR_VAR 0 2
1900: PUSH
1901: DOUBLE
1902: LD_INT 1
1904: DEC
1905: ST_TO_ADDR
1906: LD_INT 0
1908: PUSH
1909: LD_LOC 1
1913: PLUS
1914: PUSH
1915: FOR_TO
1916: IFFALSE 1950
// if ambudovy [ tmp ] = un then
1918: LD_LOC 1
1922: PUSH
1923: LD_VAR 0 2
1927: ARRAY
1928: PUSH
1929: LD_VAR 0 1
1933: EQUAL
1934: IFFALSE 1948
// begin tmp1 = tmp ;
1936: LD_ADDR_VAR 0 3
1940: PUSH
1941: LD_VAR 0 2
1945: ST_TO_ADDR
// break ;
1946: GO 1950
// end ;
1948: GO 1915
1950: POP
1951: POP
// if tmp1 and ( penalty < maxpenalty ) then
1952: LD_VAR 0 3
1956: PUSH
1957: LD_EXP 21
1961: PUSH
1962: LD_EXP 22
1966: LESS
1967: AND
1968: IFFALSE 2112
// begin for tmp in penalties do
1970: LD_ADDR_VAR 0 2
1974: PUSH
1975: LD_EXP 23
1979: PUSH
1980: FOR_IN
1981: IFFALSE 2023
// if tmp [ 1 ] = ambudovyt [ tmp1 ] then
1983: LD_VAR 0 2
1987: PUSH
1988: LD_INT 1
1990: ARRAY
1991: PUSH
1992: LD_LOC 2
1996: PUSH
1997: LD_VAR 0 3
2001: ARRAY
2002: EQUAL
2003: IFFALSE 2021
// begin tmp2 = tmp [ 2 ] ;
2005: LD_ADDR_VAR 0 4
2009: PUSH
2010: LD_VAR 0 2
2014: PUSH
2015: LD_INT 2
2017: ARRAY
2018: ST_TO_ADDR
// break ;
2019: GO 2023
// end ;
2021: GO 1980
2023: POP
2024: POP
// penalty = penalty + tmp2 ;
2025: LD_ADDR_EXP 21
2029: PUSH
2030: LD_EXP 21
2034: PUSH
2035: LD_VAR 0 4
2039: PLUS
2040: ST_TO_ADDR
// if debug then
2041: LD_EXP 19
2045: IFFALSE 2060
// msg ( penalty:  & penalty ) ;
2047: LD_STRING penalty: 
2049: PUSH
2050: LD_EXP 21
2054: STR
2055: PPUSH
2056: CALL_OW 100
// if penalty >= maxpenalty then
2060: LD_EXP 21
2064: PUSH
2065: LD_EXP 22
2069: GREATEREQUAL
2070: IFFALSE 2112
// begin killx = ambudovyxy [ tmp1 ] [ 1 ] ;
2072: LD_ADDR_EXP 54
2076: PUSH
2077: LD_LOC 3
2081: PUSH
2082: LD_VAR 0 3
2086: ARRAY
2087: PUSH
2088: LD_INT 1
2090: ARRAY
2091: ST_TO_ADDR
// killy = ambudovyxy [ tmp1 ] [ 2 ] ;
2092: LD_ADDR_EXP 55
2096: PUSH
2097: LD_LOC 3
2101: PUSH
2102: LD_VAR 0 3
2106: ARRAY
2107: PUSH
2108: LD_INT 2
2110: ARRAY
2111: ST_TO_ADDR
// end end ; end ;
2112: PPOPN 4
2114: END
// var zustalo_malo , zachraneni ; every 0 0$0.51 marked 02 do var tmp , tmp2 , chybi , chybiex ;
2115: GO 2117
2117: DISABLE
2118: LD_INT 0
2120: PPUSH
2121: PPUSH
2122: PPUSH
2123: PPUSH
// begin if isinarea ( john , vychod ) and ( not john_vychod ) then
2124: LD_EXP 27
2128: PPUSH
2129: LD_INT 13
2131: PPUSH
2132: CALL_OW 308
2136: PUSH
2137: LD_EXP 18
2141: NOT
2142: AND
2143: IFFALSE 2956
// begin john_vychod = true ;
2145: LD_ADDR_EXP 18
2149: PUSH
2150: LD_INT 1
2152: ST_TO_ADDR
// repeat wait ( 17 ) ;
2153: LD_INT 17
2155: PPUSH
2156: CALL_OW 67
// chybi = false ;
2160: LD_ADDR_VAR 0 3
2164: PUSH
2165: LD_INT 0
2167: ST_TO_ADDR
// for tmp in ( moji ^ mojivip ) do
2168: LD_ADDR_VAR 0 1
2172: PUSH
2173: LD_EXP 44
2177: PUSH
2178: LD_EXP 45
2182: ADD
2183: PUSH
2184: FOR_IN
2185: IFFALSE 2225
// if ( not isinarea ( tmp , vychod ) ) and isok ( tmp ) then
2187: LD_VAR 0 1
2191: PPUSH
2192: LD_INT 13
2194: PPUSH
2195: CALL_OW 308
2199: NOT
2200: PUSH
2201: LD_VAR 0 1
2205: PPUSH
2206: CALL_OW 302
2210: AND
2211: IFFALSE 2223
// begin chybi = true ;
2213: LD_ADDR_VAR 0 3
2217: PUSH
2218: LD_INT 1
2220: ST_TO_ADDR
// break ;
2221: GO 2225
// end ;
2223: GO 2184
2225: POP
2226: POP
// chybiex = false ;
2227: LD_ADDR_VAR 0 4
2231: PUSH
2232: LD_INT 0
2234: ST_TO_ADDR
// if chybi then
2235: LD_VAR 0 3
2239: IFFALSE 2300
// for tmp in ( moji ^ mojivip ) do
2241: LD_ADDR_VAR 0 1
2245: PUSH
2246: LD_EXP 44
2250: PUSH
2251: LD_EXP 45
2255: ADD
2256: PUSH
2257: FOR_IN
2258: IFFALSE 2298
// if ( not isinarea ( tmp , vychodex ) ) and isok ( tmp ) then
2260: LD_VAR 0 1
2264: PPUSH
2265: LD_INT 18
2267: PPUSH
2268: CALL_OW 308
2272: NOT
2273: PUSH
2274: LD_VAR 0 1
2278: PPUSH
2279: CALL_OW 302
2283: AND
2284: IFFALSE 2296
// begin chybiex = true ;
2286: LD_ADDR_VAR 0 4
2290: PUSH
2291: LD_INT 1
2293: ST_TO_ADDR
// break ;
2294: GO 2298
// end ;
2296: GO 2257
2298: POP
2299: POP
// until not ( chybi and not chybiex ) ;
2300: LD_VAR 0 3
2304: PUSH
2305: LD_VAR 0 4
2309: NOT
2310: AND
2311: NOT
2312: IFFALSE 2153
// if chybi then
2314: LD_VAR 0 3
2318: IFFALSE 2641
// if query ( Q1 ) = 1 then
2320: LD_STRING Q1
2322: PPUSH
2323: CALL_OW 97
2327: PUSH
2328: LD_INT 1
2330: EQUAL
2331: IFFALSE 2336
// enable else
2333: ENABLE
2334: GO 2639
// begin if filterunitsinarea ( vychod , [ [ f_side , al ] ] ) <= zustalo_malo then
2336: LD_INT 13
2338: PPUSH
2339: LD_INT 22
2341: PUSH
2342: LD_EXP 2
2346: PUSH
2347: EMPTY
2348: LIST
2349: LIST
2350: PUSH
2351: EMPTY
2352: LIST
2353: PPUSH
2354: CALL_OW 70
2358: PUSH
2359: LD_LOC 4
2363: LESSEQUAL
2364: IFFALSE 2380
// say ( john , D5-JMM-1a ) else
2366: LD_EXP 27
2370: PPUSH
2371: LD_STRING D5-JMM-1a
2373: PPUSH
2374: CALL_OW 88
2378: GO 2392
// say ( john , D5-JMM-1 ) ;
2380: LD_EXP 27
2384: PPUSH
2385: LD_STRING D5-JMM-1
2387: PPUSH
2388: CALL_OW 88
// zachraneni = filterunitsinarea ( vychod , [ [ f_side , al ] ] ) diff [ john , roth ] ;
2392: LD_ADDR_LOC 5
2396: PUSH
2397: LD_INT 13
2399: PPUSH
2400: LD_INT 22
2402: PUSH
2403: LD_EXP 2
2407: PUSH
2408: EMPTY
2409: LIST
2410: LIST
2411: PUSH
2412: EMPTY
2413: LIST
2414: PPUSH
2415: CALL_OW 70
2419: PUSH
2420: LD_EXP 27
2424: PUSH
2425: LD_EXP 29
2429: PUSH
2430: EMPTY
2431: LIST
2432: LIST
2433: DIFF
2434: ST_TO_ADDR
// tmp2 = 0 + zachraneni ;
2435: LD_ADDR_VAR 0 2
2439: PUSH
2440: LD_INT 0
2442: PUSH
2443: LD_LOC 5
2447: PLUS
2448: ST_TO_ADDR
// if lisamet = 2 then
2449: LD_EXP 53
2453: PUSH
2454: LD_INT 2
2456: EQUAL
2457: IFFALSE 2487
// begin contacted = contacted - 1 ;
2459: LD_ADDR_EXP 24
2463: PUSH
2464: LD_EXP 24
2468: PUSH
2469: LD_INT 1
2471: MINUS
2472: ST_TO_ADDR
// tmp2 = tmp2 + 1 ;
2473: LD_ADDR_VAR 0 2
2477: PUSH
2478: LD_VAR 0 2
2482: PUSH
2483: LD_INT 1
2485: PLUS
2486: ST_TO_ADDR
// end ; if frankmet then
2487: LD_EXP 52
2491: IFFALSE 2507
// tmp2 = tmp2 - 1 ;
2493: LD_ADDR_VAR 0 2
2497: PUSH
2498: LD_VAR 0 2
2502: PUSH
2503: LD_INT 1
2505: MINUS
2506: ST_TO_ADDR
// if joanmet then
2507: LD_EXP 51
2511: IFFALSE 2527
// tmp2 = tmp2 - 1 ;
2513: LD_ADDR_VAR 0 2
2517: PUSH
2518: LD_VAR 0 2
2522: PUSH
2523: LD_INT 1
2525: MINUS
2526: ST_TO_ADDR
// if contacted < ( 0 + moji_backup ) then
2527: LD_EXP 24
2531: PUSH
2532: LD_INT 0
2534: PUSH
2535: LD_EXP 50
2539: PLUS
2540: LESS
2541: IFFALSE 2556
// addmedal ( All , - 1 ) else
2543: LD_STRING All
2545: PPUSH
2546: LD_INT 1
2548: NEG
2549: PPUSH
2550: CALL_OW 101
2554: GO 2566
// addmedal ( All , 1 ) ;
2556: LD_STRING All
2558: PPUSH
2559: LD_INT 1
2561: PPUSH
2562: CALL_OW 101
// addmedal ( Save , - 1 ) ;
2566: LD_STRING Save
2568: PPUSH
2569: LD_INT 1
2571: NEG
2572: PPUSH
2573: CALL_OW 101
// if zabil then
2577: LD_EXP 25
2581: IFFALSE 2596
// addmedal ( Friendship , - 1 ) else
2583: LD_STRING Friendship
2585: PPUSH
2586: LD_INT 1
2588: NEG
2589: PPUSH
2590: CALL_OW 101
2594: GO 2606
// addmedal ( Friendship , 1 ) ;
2596: LD_STRING Friendship
2598: PPUSH
2599: LD_INT 1
2601: PPUSH
2602: CALL_OW 101
// givemedals ( MAIN ) ;
2606: LD_STRING MAIN
2608: PPUSH
2609: CALL_OW 102
// rewardpeople ( zachraneni ^ [ john ] ) ;
2613: LD_LOC 5
2617: PUSH
2618: LD_EXP 27
2622: PUSH
2623: EMPTY
2624: LIST
2625: ADD
2626: PPUSH
2627: CALL_OW 43
// saveitall ;
2631: CALL 3375 0 0
// youwin ;
2635: CALL_OW 103
// end else
2639: GO 2954
// begin zachraneni = filterunitsinarea ( vychod , [ [ f_side , al ] ] ) diff [ john , roth ] ;
2641: LD_ADDR_LOC 5
2645: PUSH
2646: LD_INT 13
2648: PPUSH
2649: LD_INT 22
2651: PUSH
2652: LD_EXP 2
2656: PUSH
2657: EMPTY
2658: LIST
2659: LIST
2660: PUSH
2661: EMPTY
2662: LIST
2663: PPUSH
2664: CALL_OW 70
2668: PUSH
2669: LD_EXP 27
2673: PUSH
2674: LD_EXP 29
2678: PUSH
2679: EMPTY
2680: LIST
2681: LIST
2682: DIFF
2683: ST_TO_ADDR
// tmp2 = 0 + zachraneni ;
2684: LD_ADDR_VAR 0 2
2688: PUSH
2689: LD_INT 0
2691: PUSH
2692: LD_LOC 5
2696: PLUS
2697: ST_TO_ADDR
// if tmp2 <= zustalo_malo then
2698: LD_VAR 0 2
2702: PUSH
2703: LD_LOC 4
2707: LESSEQUAL
2708: IFFALSE 2724
// say ( john , D5-JMM-1a ) else
2710: LD_EXP 27
2714: PPUSH
2715: LD_STRING D5-JMM-1a
2717: PPUSH
2718: CALL_OW 88
2722: GO 2736
// say ( john , D5-JMM-1 ) ;
2724: LD_EXP 27
2728: PPUSH
2729: LD_STRING D5-JMM-1
2731: PPUSH
2732: CALL_OW 88
// if lisamet = 2 then
2736: LD_EXP 53
2740: PUSH
2741: LD_INT 2
2743: EQUAL
2744: IFFALSE 2774
// begin contacted = contacted - 1 ;
2746: LD_ADDR_EXP 24
2750: PUSH
2751: LD_EXP 24
2755: PUSH
2756: LD_INT 1
2758: MINUS
2759: ST_TO_ADDR
// tmp2 = tmp2 + 1 ;
2760: LD_ADDR_VAR 0 2
2764: PUSH
2765: LD_VAR 0 2
2769: PUSH
2770: LD_INT 1
2772: PLUS
2773: ST_TO_ADDR
// end ; if frankmet then
2774: LD_EXP 52
2778: IFFALSE 2794
// tmp2 = tmp2 - 1 ;
2780: LD_ADDR_VAR 0 2
2784: PUSH
2785: LD_VAR 0 2
2789: PUSH
2790: LD_INT 1
2792: MINUS
2793: ST_TO_ADDR
// if joanmet then
2794: LD_EXP 51
2798: IFFALSE 2814
// tmp2 = tmp2 - 1 ;
2800: LD_ADDR_VAR 0 2
2804: PUSH
2805: LD_VAR 0 2
2809: PUSH
2810: LD_INT 1
2812: MINUS
2813: ST_TO_ADDR
// if contacted < ( 0 + moji_backup ) then
2814: LD_EXP 24
2818: PUSH
2819: LD_INT 0
2821: PUSH
2822: LD_EXP 50
2826: PLUS
2827: LESS
2828: IFFALSE 2843
// addmedal ( All , - 1 ) else
2830: LD_STRING All
2832: PPUSH
2833: LD_INT 1
2835: NEG
2836: PPUSH
2837: CALL_OW 101
2841: GO 2853
// addmedal ( All , 1 ) ;
2843: LD_STRING All
2845: PPUSH
2846: LD_INT 1
2848: PPUSH
2849: CALL_OW 101
// if tmp2 < ( 0 + moji_backup ) then
2853: LD_VAR 0 2
2857: PUSH
2858: LD_INT 0
2860: PUSH
2861: LD_EXP 50
2865: PLUS
2866: LESS
2867: IFFALSE 2882
// addmedal ( Save , - 1 ) else
2869: LD_STRING Save
2871: PPUSH
2872: LD_INT 1
2874: NEG
2875: PPUSH
2876: CALL_OW 101
2880: GO 2892
// addmedal ( Save , 1 ) ;
2882: LD_STRING Save
2884: PPUSH
2885: LD_INT 1
2887: PPUSH
2888: CALL_OW 101
// if zabil then
2892: LD_EXP 25
2896: IFFALSE 2911
// addmedal ( Friendship , - 1 ) else
2898: LD_STRING Friendship
2900: PPUSH
2901: LD_INT 1
2903: NEG
2904: PPUSH
2905: CALL_OW 101
2909: GO 2921
// addmedal ( Friendship , 1 ) ;
2911: LD_STRING Friendship
2913: PPUSH
2914: LD_INT 1
2916: PPUSH
2917: CALL_OW 101
// givemedals ( MAIN ) ;
2921: LD_STRING MAIN
2923: PPUSH
2924: CALL_OW 102
// rewardpeople ( zachraneni ^ [ john ] ) ;
2928: LD_LOC 5
2932: PUSH
2933: LD_EXP 27
2937: PUSH
2938: EMPTY
2939: LIST
2940: ADD
2941: PPUSH
2942: CALL_OW 43
// saveitall ;
2946: CALL 3375 0 0
// youwin ;
2950: CALL_OW 103
// end ; end else
2954: GO 3372
// if not isinarea ( john , vychod ) then
2956: LD_EXP 27
2960: PPUSH
2961: LD_INT 13
2963: PPUSH
2964: CALL_OW 308
2968: NOT
2969: IFFALSE 2982
// begin john_vychod = false ;
2971: LD_ADDR_EXP 18
2975: PUSH
2976: LD_INT 0
2978: ST_TO_ADDR
// enable ;
2979: ENABLE
// end else
2980: GO 3372
// begin chybi = false ;
2982: LD_ADDR_VAR 0 3
2986: PUSH
2987: LD_INT 0
2989: ST_TO_ADDR
// for tmp in ( moji ^ mojivip ) do
2990: LD_ADDR_VAR 0 1
2994: PUSH
2995: LD_EXP 44
2999: PUSH
3000: LD_EXP 45
3004: ADD
3005: PUSH
3006: FOR_IN
3007: IFFALSE 3047
// if ( not isinarea ( tmp , vychod ) ) and isok ( tmp ) then
3009: LD_VAR 0 1
3013: PPUSH
3014: LD_INT 13
3016: PPUSH
3017: CALL_OW 308
3021: NOT
3022: PUSH
3023: LD_VAR 0 1
3027: PPUSH
3028: CALL_OW 302
3032: AND
3033: IFFALSE 3045
// begin chybi = true ;
3035: LD_ADDR_VAR 0 3
3039: PUSH
3040: LD_INT 1
3042: ST_TO_ADDR
// break ;
3043: GO 3047
// end ;
3045: GO 3006
3047: POP
3048: POP
// if not chybi then
3049: LD_VAR 0 3
3053: NOT
3054: IFFALSE 3371
// begin zachraneni = filterunitsinarea ( vychod , [ [ f_side , al ] ] ) diff [ john , roth ] ;
3056: LD_ADDR_LOC 5
3060: PUSH
3061: LD_INT 13
3063: PPUSH
3064: LD_INT 22
3066: PUSH
3067: LD_EXP 2
3071: PUSH
3072: EMPTY
3073: LIST
3074: LIST
3075: PUSH
3076: EMPTY
3077: LIST
3078: PPUSH
3079: CALL_OW 70
3083: PUSH
3084: LD_EXP 27
3088: PUSH
3089: LD_EXP 29
3093: PUSH
3094: EMPTY
3095: LIST
3096: LIST
3097: DIFF
3098: ST_TO_ADDR
// tmp2 = 0 + zachraneni ;
3099: LD_ADDR_VAR 0 2
3103: PUSH
3104: LD_INT 0
3106: PUSH
3107: LD_LOC 5
3111: PLUS
3112: ST_TO_ADDR
// if tmp2 <= zustalo_malo then
3113: LD_VAR 0 2
3117: PUSH
3118: LD_LOC 4
3122: LESSEQUAL
3123: IFFALSE 3139
// say ( john , D5-JMM-1a ) else
3125: LD_EXP 27
3129: PPUSH
3130: LD_STRING D5-JMM-1a
3132: PPUSH
3133: CALL_OW 88
3137: GO 3151
// say ( john , D5-JMM-1 ) ;
3139: LD_EXP 27
3143: PPUSH
3144: LD_STRING D5-JMM-1
3146: PPUSH
3147: CALL_OW 88
// if lisamet = 2 then
3151: LD_EXP 53
3155: PUSH
3156: LD_INT 2
3158: EQUAL
3159: IFFALSE 3189
// begin contacted = contacted - 1 ;
3161: LD_ADDR_EXP 24
3165: PUSH
3166: LD_EXP 24
3170: PUSH
3171: LD_INT 1
3173: MINUS
3174: ST_TO_ADDR
// tmp2 = tmp2 + 1 ;
3175: LD_ADDR_VAR 0 2
3179: PUSH
3180: LD_VAR 0 2
3184: PUSH
3185: LD_INT 1
3187: PLUS
3188: ST_TO_ADDR
// end ; if frankmet then
3189: LD_EXP 52
3193: IFFALSE 3209
// tmp2 = tmp2 - 1 ;
3195: LD_ADDR_VAR 0 2
3199: PUSH
3200: LD_VAR 0 2
3204: PUSH
3205: LD_INT 1
3207: MINUS
3208: ST_TO_ADDR
// if joanmet then
3209: LD_EXP 51
3213: IFFALSE 3229
// tmp2 = tmp2 - 1 ;
3215: LD_ADDR_VAR 0 2
3219: PUSH
3220: LD_VAR 0 2
3224: PUSH
3225: LD_INT 1
3227: MINUS
3228: ST_TO_ADDR
// if contacted < ( 0 + moji_backup ) then
3229: LD_EXP 24
3233: PUSH
3234: LD_INT 0
3236: PUSH
3237: LD_EXP 50
3241: PLUS
3242: LESS
3243: IFFALSE 3258
// addmedal ( All , - 1 ) else
3245: LD_STRING All
3247: PPUSH
3248: LD_INT 1
3250: NEG
3251: PPUSH
3252: CALL_OW 101
3256: GO 3268
// addmedal ( All , 1 ) ;
3258: LD_STRING All
3260: PPUSH
3261: LD_INT 1
3263: PPUSH
3264: CALL_OW 101
// if tmp2 < ( 0 + moji_backup ) then
3268: LD_VAR 0 2
3272: PUSH
3273: LD_INT 0
3275: PUSH
3276: LD_EXP 50
3280: PLUS
3281: LESS
3282: IFFALSE 3297
// addmedal ( Save , - 1 ) else
3284: LD_STRING Save
3286: PPUSH
3287: LD_INT 1
3289: NEG
3290: PPUSH
3291: CALL_OW 101
3295: GO 3307
// addmedal ( Save , 1 ) ;
3297: LD_STRING Save
3299: PPUSH
3300: LD_INT 1
3302: PPUSH
3303: CALL_OW 101
// if zabil then
3307: LD_EXP 25
3311: IFFALSE 3326
// addmedal ( Friendship , - 1 ) else
3313: LD_STRING Friendship
3315: PPUSH
3316: LD_INT 1
3318: NEG
3319: PPUSH
3320: CALL_OW 101
3324: GO 3336
// addmedal ( Friendship , 1 ) ;
3326: LD_STRING Friendship
3328: PPUSH
3329: LD_INT 1
3331: PPUSH
3332: CALL_OW 101
// givemedals ( MAIN ) ;
3336: LD_STRING MAIN
3338: PPUSH
3339: CALL_OW 102
// rewardpeople ( zachraneni ^ [ john ] ) ;
3343: LD_LOC 5
3347: PUSH
3348: LD_EXP 27
3352: PUSH
3353: EMPTY
3354: LIST
3355: ADD
3356: PPUSH
3357: CALL_OW 43
// saveitall ;
3361: CALL 3375 0 0
// youwin ;
3365: CALL_OW 103
// end else
3369: GO 3372
// enable ;
3371: ENABLE
// end ; end ;
3372: PPOPN 4
3374: END
// function saveitall ; var tmp , vybrani , odpad ; begin
3375: LD_INT 0
3377: PPUSH
3378: PPUSH
3379: PPUSH
3380: PPUSH
// savecharacters ( john , JMM ) ;
3381: LD_EXP 27
3385: PPUSH
3386: LD_STRING JMM
3388: PPUSH
3389: CALL_OW 38
// if cyrus then
3393: LD_EXP 32
3397: IFFALSE 3449
// begin savecharacters ( cyrus , Cyrus ) ;
3399: LD_EXP 32
3403: PPUSH
3404: LD_STRING Cyrus
3406: PPUSH
3407: CALL_OW 38
// if cyrus in zachraneni then
3411: LD_EXP 32
3415: PUSH
3416: LD_LOC 5
3420: IN
3421: IFFALSE 3437
// savevariable ( al , cyrus_side ) else
3423: LD_EXP 2
3427: PPUSH
3428: LD_STRING cyrus_side
3430: PPUSH
3431: CALL_OW 39
3435: GO 3449
// savevariable ( am , cyrus_side ) ;
3437: LD_EXP 1
3441: PPUSH
3442: LD_STRING cyrus_side
3444: PPUSH
3445: CALL_OW 39
// end ; if bobby then
3449: LD_EXP 31
3453: IFFALSE 3505
// begin savecharacters ( bobby , Bobby ) ;
3455: LD_EXP 31
3459: PPUSH
3460: LD_STRING Bobby
3462: PPUSH
3463: CALL_OW 38
// if bobby in zachraneni then
3467: LD_EXP 31
3471: PUSH
3472: LD_LOC 5
3476: IN
3477: IFFALSE 3493
// savevariable ( al , bobby_side ) else
3479: LD_EXP 2
3483: PPUSH
3484: LD_STRING bobby_side
3486: PPUSH
3487: CALL_OW 39
3491: GO 3505
// savevariable ( am , bobby_side ) ;
3493: LD_EXP 1
3497: PPUSH
3498: LD_STRING bobby_side
3500: PPUSH
3501: CALL_OW 39
// end ; if lisa then
3505: LD_EXP 33
3509: IFFALSE 3561
// begin savecharacters ( lisa , Lisa ) ;
3511: LD_EXP 33
3515: PPUSH
3516: LD_STRING Lisa
3518: PPUSH
3519: CALL_OW 38
// if lisa in zachraneni then
3523: LD_EXP 33
3527: PUSH
3528: LD_LOC 5
3532: IN
3533: IFFALSE 3549
// savevariable ( al , lisa_side ) else
3535: LD_EXP 2
3539: PPUSH
3540: LD_STRING lisa_side
3542: PPUSH
3543: CALL_OW 39
3547: GO 3561
// savevariable ( am , lisa_side ) ;
3549: LD_EXP 1
3553: PPUSH
3554: LD_STRING lisa_side
3556: PPUSH
3557: CALL_OW 39
// end ; if frank then
3561: LD_EXP 34
3565: IFFALSE 3617
// begin savecharacters ( frank , Frank ) ;
3567: LD_EXP 34
3571: PPUSH
3572: LD_STRING Frank
3574: PPUSH
3575: CALL_OW 38
// if frank in zachraneni then
3579: LD_EXP 34
3583: PUSH
3584: LD_LOC 5
3588: IN
3589: IFFALSE 3605
// savevariable ( al , frank_side ) else
3591: LD_EXP 2
3595: PPUSH
3596: LD_STRING frank_side
3598: PPUSH
3599: CALL_OW 39
3603: GO 3617
// savevariable ( am , frank_side ) ;
3605: LD_EXP 1
3609: PPUSH
3610: LD_STRING frank_side
3612: PPUSH
3613: CALL_OW 39
// end ; if joan then
3617: LD_EXP 30
3621: IFFALSE 3673
// begin savecharacters ( joan , Joan ) ;
3623: LD_EXP 30
3627: PPUSH
3628: LD_STRING Joan
3630: PPUSH
3631: CALL_OW 38
// if joan in zachraneni then
3635: LD_EXP 30
3639: PUSH
3640: LD_LOC 5
3644: IN
3645: IFFALSE 3661
// savevariable ( al , joan_side ) else
3647: LD_EXP 2
3651: PPUSH
3652: LD_STRING joan_side
3654: PPUSH
3655: CALL_OW 39
3659: GO 3673
// savevariable ( am , joan_side ) ;
3661: LD_EXP 1
3665: PPUSH
3666: LD_STRING joan_side
3668: PPUSH
3669: CALL_OW 39
// end ; if yamoko then
3673: LD_EXP 38
3677: IFFALSE 3729
// begin savecharacters ( yamoko , Yamoko ) ;
3679: LD_EXP 38
3683: PPUSH
3684: LD_STRING Yamoko
3686: PPUSH
3687: CALL_OW 38
// if yamoko in zachraneni then
3691: LD_EXP 38
3695: PUSH
3696: LD_LOC 5
3700: IN
3701: IFFALSE 3717
// savevariable ( al , yamoko_side ) else
3703: LD_EXP 2
3707: PPUSH
3708: LD_STRING yamoko_side
3710: PPUSH
3711: CALL_OW 39
3715: GO 3729
// savevariable ( am , yamoko_side ) ;
3717: LD_EXP 1
3721: PPUSH
3722: LD_STRING yamoko_side
3724: PPUSH
3725: CALL_OW 39
// end ; if markc then
3729: LD_EXP 35
3733: IFFALSE 3785
// begin savecharacters ( markc , Cornell ) ;
3735: LD_EXP 35
3739: PPUSH
3740: LD_STRING Cornell
3742: PPUSH
3743: CALL_OW 38
// if markc in zachraneni then
3747: LD_EXP 35
3751: PUSH
3752: LD_LOC 5
3756: IN
3757: IFFALSE 3773
// savevariable ( al , markc_side ) else
3759: LD_EXP 2
3763: PPUSH
3764: LD_STRING markc_side
3766: PPUSH
3767: CALL_OW 39
3771: GO 3785
// savevariable ( am , markc_side ) ;
3773: LD_EXP 1
3777: PPUSH
3778: LD_STRING markc_side
3780: PPUSH
3781: CALL_OW 39
// end ; if brown then
3785: LD_EXP 41
3789: IFFALSE 3841
// begin savecharacters ( brown , Brown ) ;
3791: LD_EXP 41
3795: PPUSH
3796: LD_STRING Brown
3798: PPUSH
3799: CALL_OW 38
// if brown in zachraneni then
3803: LD_EXP 41
3807: PUSH
3808: LD_LOC 5
3812: IN
3813: IFFALSE 3829
// savevariable ( al , brown_side ) else
3815: LD_EXP 2
3819: PPUSH
3820: LD_STRING brown_side
3822: PPUSH
3823: CALL_OW 39
3827: GO 3841
// savevariable ( am , brown_side ) ;
3829: LD_EXP 1
3833: PPUSH
3834: LD_STRING brown_side
3836: PPUSH
3837: CALL_OW 39
// end ; if lucy then
3841: LD_EXP 42
3845: IFFALSE 3897
// begin savecharacters ( lucy , Donaldson ) ;
3847: LD_EXP 42
3851: PPUSH
3852: LD_STRING Donaldson
3854: PPUSH
3855: CALL_OW 38
// if lucy in zachraneni then
3859: LD_EXP 42
3863: PUSH
3864: LD_LOC 5
3868: IN
3869: IFFALSE 3885
// savevariable ( al , lucy_side ) else
3871: LD_EXP 2
3875: PPUSH
3876: LD_STRING lucy_side
3878: PPUSH
3879: CALL_OW 39
3883: GO 3897
// savevariable ( am , lucy_side ) ;
3885: LD_EXP 1
3889: PPUSH
3890: LD_STRING lucy_side
3892: PPUSH
3893: CALL_OW 39
// end ; if tim then
3897: LD_EXP 36
3901: IFFALSE 3953
// begin savecharacters ( tim , Gladstone ) ;
3903: LD_EXP 36
3907: PPUSH
3908: LD_STRING Gladstone
3910: PPUSH
3911: CALL_OW 38
// if tim in zachraneni then
3915: LD_EXP 36
3919: PUSH
3920: LD_LOC 5
3924: IN
3925: IFFALSE 3941
// savevariable ( al , tim_side ) else
3927: LD_EXP 2
3931: PPUSH
3932: LD_STRING tim_side
3934: PPUSH
3935: CALL_OW 39
3939: GO 3953
// savevariable ( am , tim_side ) ;
3941: LD_EXP 1
3945: PPUSH
3946: LD_STRING tim_side
3948: PPUSH
3949: CALL_OW 39
// end ; if denis then
3953: LD_EXP 37
3957: IFFALSE 4026
// begin savecharacters ( denis , Denis ) ;
3959: LD_EXP 37
3963: PPUSH
3964: LD_STRING Denis
3966: PPUSH
3967: CALL_OW 38
// if denis in zachraneni then
3971: LD_EXP 37
3975: PUSH
3976: LD_LOC 5
3980: IN
3981: IFFALSE 3997
// savevariable ( al , denis_side ) else
3983: LD_EXP 2
3987: PPUSH
3988: LD_STRING denis_side
3990: PPUSH
3991: CALL_OW 39
3995: GO 4009
// savevariable ( am , denis_side ) ;
3997: LD_EXP 1
4001: PPUSH
4002: LD_STRING denis_side
4004: PPUSH
4005: CALL_OW 39
// savevariable ( getside ( denis ) , denis_side ) ;
4009: LD_EXP 37
4013: PPUSH
4014: CALL_OW 255
4018: PPUSH
4019: LD_STRING denis_side
4021: PPUSH
4022: CALL_OW 39
// end ; if gary then
4026: LD_EXP 39
4030: IFFALSE 4082
// begin savecharacters ( gary , Gary ) ;
4032: LD_EXP 39
4036: PPUSH
4037: LD_STRING Gary
4039: PPUSH
4040: CALL_OW 38
// if gary in zachraneni then
4044: LD_EXP 39
4048: PUSH
4049: LD_LOC 5
4053: IN
4054: IFFALSE 4070
// savevariable ( al , gary_side ) else
4056: LD_EXP 2
4060: PPUSH
4061: LD_STRING gary_side
4063: PPUSH
4064: CALL_OW 39
4068: GO 4082
// savevariable ( am , gary_side ) ;
4070: LD_EXP 1
4074: PPUSH
4075: LD_STRING gary_side
4077: PPUSH
4078: CALL_OW 39
// end ; if simms then
4082: LD_EXP 40
4086: IFFALSE 4138
// begin savecharacters ( simms , Simms ) ;
4088: LD_EXP 40
4092: PPUSH
4093: LD_STRING Simms
4095: PPUSH
4096: CALL_OW 38
// if simms in zachraneni then
4100: LD_EXP 40
4104: PUSH
4105: LD_LOC 5
4109: IN
4110: IFFALSE 4126
// savevariable ( al , simms_side ) else
4112: LD_EXP 2
4116: PPUSH
4117: LD_STRING simms_side
4119: PPUSH
4120: CALL_OW 39
4124: GO 4138
// savevariable ( am , simms_side ) ;
4126: LD_EXP 1
4130: PPUSH
4131: LD_STRING simms_side
4133: PPUSH
4134: CALL_OW 39
// end ; vybrani = [ ] ;
4138: LD_ADDR_VAR 0 3
4142: PUSH
4143: EMPTY
4144: ST_TO_ADDR
// odpad = [ ] ;
4145: LD_ADDR_VAR 0 4
4149: PUSH
4150: EMPTY
4151: ST_TO_ADDR
// if testcharacters ( otherwithJMM ) then
4152: LD_STRING otherwithJMM
4154: PPUSH
4155: CALL_OW 28
4159: IFFALSE 4176
// vybrani = createcharacterset ( otherwithJMM ) else
4161: LD_ADDR_VAR 0 3
4165: PUSH
4166: LD_STRING otherwithJMM
4168: PPUSH
4169: CALL_OW 31
4173: ST_TO_ADDR
4174: GO 4189
// buildquery ( neny otherwithJMM , [ OK ] ) ;
4176: LD_STRING neny otherwithJMM
4178: PPUSH
4179: LD_STRING OK
4181: PUSH
4182: EMPTY
4183: LIST
4184: PPUSH
4185: CALL_OW 99
// if testcharacters ( othernotJMM ) then
4189: LD_STRING othernotJMM
4191: PPUSH
4192: CALL_OW 28
4196: IFFALSE 4213
// odpad = createcharacterset ( othernotJMM ) else
4198: LD_ADDR_VAR 0 4
4202: PUSH
4203: LD_STRING othernotJMM
4205: PPUSH
4206: CALL_OW 31
4210: ST_TO_ADDR
4211: GO 4226
// buildquery ( neny othernotJMM , [ OK ] ) ;
4213: LD_STRING neny othernotJMM
4215: PPUSH
4216: LD_STRING OK
4218: PUSH
4219: EMPTY
4220: LIST
4221: PPUSH
4222: CALL_OW 99
// tmp = zachraneni diff [ john , joan , bobby , cyrus , lisa , frank , markc , brown , lucy , tim , denis , yamoko , gary , simms ] ;
4226: LD_ADDR_VAR 0 2
4230: PUSH
4231: LD_LOC 5
4235: PUSH
4236: LD_EXP 27
4240: PUSH
4241: LD_EXP 30
4245: PUSH
4246: LD_EXP 31
4250: PUSH
4251: LD_EXP 32
4255: PUSH
4256: LD_EXP 33
4260: PUSH
4261: LD_EXP 34
4265: PUSH
4266: LD_EXP 35
4270: PUSH
4271: LD_EXP 41
4275: PUSH
4276: LD_EXP 42
4280: PUSH
4281: LD_EXP 36
4285: PUSH
4286: LD_EXP 37
4290: PUSH
4291: LD_EXP 38
4295: PUSH
4296: LD_EXP 39
4300: PUSH
4301: LD_EXP 40
4305: PUSH
4306: EMPTY
4307: LIST
4308: LIST
4309: LIST
4310: LIST
4311: LIST
4312: LIST
4313: LIST
4314: LIST
4315: LIST
4316: LIST
4317: LIST
4318: LIST
4319: LIST
4320: LIST
4321: DIFF
4322: ST_TO_ADDR
// savecharacters ( tmp , otherwithJMM ) ;
4323: LD_VAR 0 2
4327: PPUSH
4328: LD_STRING otherwithJMM
4330: PPUSH
4331: CALL_OW 38
// savecharacters ( ( vybrani diff tmp ) union odpad , othernotJMM ) ;
4335: LD_VAR 0 3
4339: PUSH
4340: LD_VAR 0 2
4344: DIFF
4345: PUSH
4346: LD_VAR 0 4
4350: UNION
4351: PPUSH
4352: LD_STRING othernotJMM
4354: PPUSH
4355: CALL_OW 38
// end ; end_of_file
4359: LD_VAR 0 1
4363: RET
// export john , powell , roth , joan , bobby , cyrus , lisa , frank , markc , tim , denis , yamoko , gary , simms , brown , lucy , zbytekz11 ; export moji , mojivip , ostatnivip ; export mista , areas , pocetmist ; export moji_backup ; export function prepare_americans ; var tmp , tmp2 , tmp3 ; begin
4364: LD_INT 0
4366: PPUSH
4367: PPUSH
4368: PPUSH
4369: PPUSH
// changesidefog ( oth , al ) ;
4370: LD_EXP 3
4374: PPUSH
4375: LD_EXP 2
4379: PPUSH
4380: CALL_OW 343
// uc_side = am ;
4384: LD_ADDR_OWVAR 20
4388: PUSH
4389: LD_EXP 1
4393: ST_TO_ADDR
// uc_nation = nation_american ;
4394: LD_ADDR_OWVAR 21
4398: PUSH
4399: LD_INT 1
4401: ST_TO_ADDR
// preparesoldier ( sex_male , ams00 ) ;
4402: LD_INT 1
4404: PPUSH
4405: LD_EXP 4
4409: PPUSH
4410: CALL_OW 381
// tmp = createhuman ;
4414: LD_ADDR_VAR 0 2
4418: PUSH
4419: CALL_OW 44
4423: ST_TO_ADDR
// placeunitxy ( tmp , 43 , 14 , false ) ;
4424: LD_VAR 0 2
4428: PPUSH
4429: LD_INT 43
4431: PPUSH
4432: LD_INT 14
4434: PPUSH
4435: LD_INT 0
4437: PPUSH
4438: CALL_OW 48
// commoveunit ( tmp , ambunk0 ) ;
4442: LD_VAR 0 2
4446: PPUSH
4447: LD_INT 40
4449: PPUSH
4450: CALL_OW 112
// preparesoldier ( sex_male , ams01 ) ;
4454: LD_INT 1
4456: PPUSH
4457: LD_EXP 5
4461: PPUSH
4462: CALL_OW 381
// tmp = createhuman ;
4466: LD_ADDR_VAR 0 2
4470: PUSH
4471: CALL_OW 44
4475: ST_TO_ADDR
// placeunitxy ( tmp , 93 , 17 , false ) ;
4476: LD_VAR 0 2
4480: PPUSH
4481: LD_INT 93
4483: PPUSH
4484: LD_INT 17
4486: PPUSH
4487: LD_INT 0
4489: PPUSH
4490: CALL_OW 48
// commoveunit ( tmp , ambunk1 ) ;
4494: LD_VAR 0 2
4498: PPUSH
4499: LD_INT 41
4501: PPUSH
4502: CALL_OW 112
// preparesoldier ( sex_male , ams02 ) ;
4506: LD_INT 1
4508: PPUSH
4509: LD_EXP 6
4513: PPUSH
4514: CALL_OW 381
// tmp = createhuman ;
4518: LD_ADDR_VAR 0 2
4522: PUSH
4523: CALL_OW 44
4527: ST_TO_ADDR
// placeunitxy ( tmp , 148 , 88 , false ) ;
4528: LD_VAR 0 2
4532: PPUSH
4533: LD_INT 148
4535: PPUSH
4536: LD_INT 88
4538: PPUSH
4539: LD_INT 0
4541: PPUSH
4542: CALL_OW 48
// commoveunit ( tmp , ambunk2 ) ;
4546: LD_VAR 0 2
4550: PPUSH
4551: LD_INT 36
4553: PPUSH
4554: CALL_OW 112
// preparesoldier ( sex_male , ams03 ) ;
4558: LD_INT 1
4560: PPUSH
4561: LD_EXP 7
4565: PPUSH
4566: CALL_OW 381
// tmp = createhuman ;
4570: LD_ADDR_VAR 0 2
4574: PUSH
4575: CALL_OW 44
4579: ST_TO_ADDR
// placeunitxy ( tmp , 108 , 87 , false ) ;
4580: LD_VAR 0 2
4584: PPUSH
4585: LD_INT 108
4587: PPUSH
4588: LD_INT 87
4590: PPUSH
4591: LD_INT 0
4593: PPUSH
4594: CALL_OW 48
// commoveunit ( tmp , ambunk3 ) ;
4598: LD_VAR 0 2
4602: PPUSH
4603: LD_INT 33
4605: PPUSH
4606: CALL_OW 112
// preparesoldier ( sex_male , ams04 ) ;
4610: LD_INT 1
4612: PPUSH
4613: LD_EXP 8
4617: PPUSH
4618: CALL_OW 381
// tmp = createhuman ;
4622: LD_ADDR_VAR 0 2
4626: PUSH
4627: CALL_OW 44
4631: ST_TO_ADDR
// placeunitxy ( tmp , 46 , 73 , false ) ;
4632: LD_VAR 0 2
4636: PPUSH
4637: LD_INT 46
4639: PPUSH
4640: LD_INT 73
4642: PPUSH
4643: LD_INT 0
4645: PPUSH
4646: CALL_OW 48
// commoveunit ( tmp , ambunk4 ) ;
4650: LD_VAR 0 2
4654: PPUSH
4655: LD_INT 38
4657: PPUSH
4658: CALL_OW 112
// preparesoldier ( sex_male , ams05 ) ;
4662: LD_INT 1
4664: PPUSH
4665: LD_EXP 9
4669: PPUSH
4670: CALL_OW 381
// tmp = createhuman ;
4674: LD_ADDR_VAR 0 2
4678: PUSH
4679: CALL_OW 44
4683: ST_TO_ADDR
// placeunitxy ( tmp , 48 , 54 , false ) ;
4684: LD_VAR 0 2
4688: PPUSH
4689: LD_INT 48
4691: PPUSH
4692: LD_INT 54
4694: PPUSH
4695: LD_INT 0
4697: PPUSH
4698: CALL_OW 48
// commoveunit ( tmp , ambunk5 ) ;
4702: LD_VAR 0 2
4706: PPUSH
4707: LD_INT 28
4709: PPUSH
4710: CALL_OW 112
// preparesoldier ( sex_male , ams06 ) ;
4714: LD_INT 1
4716: PPUSH
4717: LD_EXP 10
4721: PPUSH
4722: CALL_OW 381
// tmp = createhuman ;
4726: LD_ADDR_VAR 0 2
4730: PUSH
4731: CALL_OW 44
4735: ST_TO_ADDR
// placeunitxy ( tmp , 46 , 44 , false ) ;
4736: LD_VAR 0 2
4740: PPUSH
4741: LD_INT 46
4743: PPUSH
4744: LD_INT 44
4746: PPUSH
4747: LD_INT 0
4749: PPUSH
4750: CALL_OW 48
// commoveunit ( tmp , ambunk6 ) ;
4754: LD_VAR 0 2
4758: PPUSH
4759: LD_INT 31
4761: PPUSH
4762: CALL_OW 112
// vc_control = control_manual ;
4766: LD_ADDR_OWVAR 38
4770: PUSH
4771: LD_INT 1
4773: ST_TO_ADDR
// vc_engine = engine_siberite ;
4774: LD_ADDR_OWVAR 39
4778: PUSH
4779: LD_INT 3
4781: ST_TO_ADDR
// vc_chassis = amv0_ch ;
4782: LD_ADDR_OWVAR 37
4786: PUSH
4787: LD_EXP 11
4791: ST_TO_ADDR
// vc_weapon = amv0_wp ;
4792: LD_ADDR_OWVAR 40
4796: PUSH
4797: LD_EXP 12
4801: ST_TO_ADDR
// tmp = createvehicle ;
4802: LD_ADDR_VAR 0 2
4806: PUSH
4807: CALL_OW 45
4811: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
4812: LD_VAR 0 2
4816: PPUSH
4817: LD_INT 5
4819: PPUSH
4820: CALL_OW 233
// placeunitxy ( tmp , 131 , 61 , false ) ;
4824: LD_VAR 0 2
4828: PPUSH
4829: LD_INT 131
4831: PPUSH
4832: LD_INT 61
4834: PPUSH
4835: LD_INT 0
4837: PPUSH
4838: CALL_OW 48
// preparemechanic ( sex_male , amv0_drv ) ;
4842: LD_INT 1
4844: PPUSH
4845: LD_EXP 13
4849: PPUSH
4850: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
4854: CALL_OW 44
4858: PPUSH
4859: LD_VAR 0 2
4863: PPUSH
4864: CALL_OW 52
// comagressivemove ( tmp , 105 , 42 ) ;
4868: LD_VAR 0 2
4872: PPUSH
4873: LD_INT 105
4875: PPUSH
4876: LD_INT 42
4878: PPUSH
4879: CALL_OW 114
// addcomagressivemove ( tmp , 98 , 46 ) ;
4883: LD_VAR 0 2
4887: PPUSH
4888: LD_INT 98
4890: PPUSH
4891: LD_INT 46
4893: PPUSH
4894: CALL_OW 174
// addcomagressivemove ( tmp , 100 , 57 ) ;
4898: LD_VAR 0 2
4902: PPUSH
4903: LD_INT 100
4905: PPUSH
4906: LD_INT 57
4908: PPUSH
4909: CALL_OW 174
// addcomagressivemove ( tmp , 114 , 67 ) ;
4913: LD_VAR 0 2
4917: PPUSH
4918: LD_INT 114
4920: PPUSH
4921: LD_INT 67
4923: PPUSH
4924: CALL_OW 174
// addcomagressivemove ( tmp , 134 , 64 ) ;
4928: LD_VAR 0 2
4932: PPUSH
4933: LD_INT 134
4935: PPUSH
4936: LD_INT 64
4938: PPUSH
4939: CALL_OW 174
// addcomagressivemove ( tmp , 105 , 42 ) ;
4943: LD_VAR 0 2
4947: PPUSH
4948: LD_INT 105
4950: PPUSH
4951: LD_INT 42
4953: PPUSH
4954: CALL_OW 174
// vc_control = control_manual ;
4958: LD_ADDR_OWVAR 38
4962: PUSH
4963: LD_INT 1
4965: ST_TO_ADDR
// vc_engine = engine_siberite ;
4966: LD_ADDR_OWVAR 39
4970: PUSH
4971: LD_INT 3
4973: ST_TO_ADDR
// vc_chassis = amv1_ch ;
4974: LD_ADDR_OWVAR 37
4978: PUSH
4979: LD_EXP 14
4983: ST_TO_ADDR
// vc_weapon = amv1_wp ;
4984: LD_ADDR_OWVAR 40
4988: PUSH
4989: LD_EXP 15
4993: ST_TO_ADDR
// tmp = createvehicle ;
4994: LD_ADDR_VAR 0 2
4998: PUSH
4999: CALL_OW 45
5003: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
5004: LD_VAR 0 2
5008: PPUSH
5009: LD_INT 5
5011: PPUSH
5012: CALL_OW 233
// placeunitxy ( tmp , 110 , 96 , false ) ;
5016: LD_VAR 0 2
5020: PPUSH
5021: LD_INT 110
5023: PPUSH
5024: LD_INT 96
5026: PPUSH
5027: LD_INT 0
5029: PPUSH
5030: CALL_OW 48
// preparemechanic ( sex_male , amv1_drv ) ;
5034: LD_INT 1
5036: PPUSH
5037: LD_EXP 16
5041: PPUSH
5042: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
5046: CALL_OW 44
5050: PPUSH
5051: LD_VAR 0 2
5055: PPUSH
5056: CALL_OW 52
// comagressivemove ( tmp , 91 , 87 ) ;
5060: LD_VAR 0 2
5064: PPUSH
5065: LD_INT 91
5067: PPUSH
5068: LD_INT 87
5070: PPUSH
5071: CALL_OW 114
// addcomagressivemove ( tmp , 71 , 83 ) ;
5075: LD_VAR 0 2
5079: PPUSH
5080: LD_INT 71
5082: PPUSH
5083: LD_INT 83
5085: PPUSH
5086: CALL_OW 174
// addcomagressivemove ( tmp , 54 , 70 ) ;
5090: LD_VAR 0 2
5094: PPUSH
5095: LD_INT 54
5097: PPUSH
5098: LD_INT 70
5100: PPUSH
5101: CALL_OW 174
// addcomagressivemove ( tmp , 62 , 87 ) ;
5105: LD_VAR 0 2
5109: PPUSH
5110: LD_INT 62
5112: PPUSH
5113: LD_INT 87
5115: PPUSH
5116: CALL_OW 174
// addcomagressivemove ( tmp , 86 , 99 ) ;
5120: LD_VAR 0 2
5124: PPUSH
5125: LD_INT 86
5127: PPUSH
5128: LD_INT 99
5130: PPUSH
5131: CALL_OW 174
// addcomagressivemove ( tmp , 91 , 87 ) ;
5135: LD_VAR 0 2
5139: PPUSH
5140: LD_INT 91
5142: PPUSH
5143: LD_INT 87
5145: PPUSH
5146: CALL_OW 174
// preparehuman ( sex_female , class_sniper , amv2_cl ) ;
5150: LD_INT 2
5152: PPUSH
5153: LD_INT 5
5155: PPUSH
5156: LD_EXP 17
5160: PPUSH
5161: CALL_OW 380
// tmp = createhuman ;
5165: LD_ADDR_VAR 0 2
5169: PUSH
5170: CALL_OW 44
5174: ST_TO_ADDR
// placeunitxy ( tmp , 80 , 31 , false ) ;
5175: LD_VAR 0 2
5179: PPUSH
5180: LD_INT 80
5182: PPUSH
5183: LD_INT 31
5185: PPUSH
5186: LD_INT 0
5188: PPUSH
5189: CALL_OW 48
// comhold ( tmp ) ;
5193: LD_VAR 0 2
5197: PPUSH
5198: CALL_OW 140
// uc_side = al ;
5202: LD_ADDR_OWVAR 20
5206: PUSH
5207: LD_EXP 2
5211: ST_TO_ADDR
// if checkcharacterset ( JMM ) then
5212: LD_STRING JMM
5214: PPUSH
5215: CALL_OW 29
5219: IFFALSE 5239
// john = createcharacterwithclass ( JMM , class_soldier ) else
5221: LD_ADDR_EXP 27
5225: PUSH
5226: LD_STRING JMM
5228: PPUSH
5229: LD_INT 1
5231: PPUSH
5232: CALL_OW 35
5236: ST_TO_ADDR
5237: GO 5252
// buildquery ( neny JMM , [ OK ] ) ;
5239: LD_STRING neny JMM
5241: PPUSH
5242: LD_STRING OK
5244: PUSH
5245: EMPTY
5246: LIST
5247: PPUSH
5248: CALL_OW 99
// roth = newcharacter ( Roth ) ;
5252: LD_ADDR_EXP 29
5256: PUSH
5257: LD_STRING Roth
5259: PPUSH
5260: CALL_OW 25
5264: ST_TO_ADDR
// if not roth then
5265: LD_EXP 29
5269: NOT
5270: IFFALSE 5285
// buildquery ( neny Roth , [ OK ] ) ;
5272: LD_STRING neny Roth
5274: PPUSH
5275: LD_STRING OK
5277: PUSH
5278: EMPTY
5279: LIST
5280: PPUSH
5281: CALL_OW 99
// uc_side = am ;
5285: LD_ADDR_OWVAR 20
5289: PUSH
5290: LD_EXP 1
5294: ST_TO_ADDR
// powell = newcharacter ( Powell ) ;
5295: LD_ADDR_EXP 28
5299: PUSH
5300: LD_STRING Powell
5302: PPUSH
5303: CALL_OW 25
5307: ST_TO_ADDR
// if not powell then
5308: LD_EXP 28
5312: NOT
5313: IFFALSE 5328
// buildquery ( neny Powell , [ OK ] ) ;
5315: LD_STRING neny Powell
5317: PPUSH
5318: LD_STRING OK
5320: PUSH
5321: EMPTY
5322: LIST
5323: PPUSH
5324: CALL_OW 99
// uc_side = oth ;
5328: LD_ADDR_OWVAR 20
5332: PUSH
5333: LD_EXP 3
5337: ST_TO_ADDR
// if not ( testvariable ( joan ) and testvariable ( bobby ) and testvariable ( cyrus ) and testvariable ( lisa ) and testvariable ( frank ) and testvariable ( cornell ) and testvariable ( brown ) and testvariable ( lucy ) and testvariable ( gladstone ) and testvariable ( denis ) and testvariable ( yamoko ) and testvariable ( gary ) and testvariable ( simms ) ) then
5338: LD_STRING joan
5340: PPUSH
5341: CALL_OW 27
5345: PUSH
5346: LD_STRING bobby
5348: PPUSH
5349: CALL_OW 27
5353: AND
5354: PUSH
5355: LD_STRING cyrus
5357: PPUSH
5358: CALL_OW 27
5362: AND
5363: PUSH
5364: LD_STRING lisa
5366: PPUSH
5367: CALL_OW 27
5371: AND
5372: PUSH
5373: LD_STRING frank
5375: PPUSH
5376: CALL_OW 27
5380: AND
5381: PUSH
5382: LD_STRING cornell
5384: PPUSH
5385: CALL_OW 27
5389: AND
5390: PUSH
5391: LD_STRING brown
5393: PPUSH
5394: CALL_OW 27
5398: AND
5399: PUSH
5400: LD_STRING lucy
5402: PPUSH
5403: CALL_OW 27
5407: AND
5408: PUSH
5409: LD_STRING gladstone
5411: PPUSH
5412: CALL_OW 27
5416: AND
5417: PUSH
5418: LD_STRING denis
5420: PPUSH
5421: CALL_OW 27
5425: AND
5426: PUSH
5427: LD_STRING yamoko
5429: PPUSH
5430: CALL_OW 27
5434: AND
5435: PUSH
5436: LD_STRING gary
5438: PPUSH
5439: CALL_OW 27
5443: AND
5444: PUSH
5445: LD_STRING simms
5447: PPUSH
5448: CALL_OW 27
5452: AND
5453: NOT
5454: IFFALSE 5463
// msg ( a co treba si pustit i to intro?!? ) ;
5456: LD_STRING a co treba si pustit i to intro?!?
5458: PPUSH
5459: CALL_OW 100
// tmp = loadvariable ( joan , - 1 ) ;
5463: LD_ADDR_VAR 0 2
5467: PUSH
5468: LD_STRING joan
5470: PPUSH
5471: LD_INT 1
5473: NEG
5474: PPUSH
5475: CALL_OW 30
5479: ST_TO_ADDR
// if tmp then
5480: LD_VAR 0 2
5484: IFFALSE 5551
// begin joan = createcharacter ( Joan ) ;
5486: LD_ADDR_EXP 30
5490: PUSH
5491: LD_STRING Joan
5493: PPUSH
5494: CALL_OW 34
5498: ST_TO_ADDR
// if tmp = 1 then
5499: LD_VAR 0 2
5503: PUSH
5504: LD_INT 1
5506: EQUAL
5507: IFFALSE 5530
// mojivip = mojivip ^ [ joan ] else
5509: LD_ADDR_EXP 45
5513: PUSH
5514: LD_EXP 45
5518: PUSH
5519: LD_EXP 30
5523: PUSH
5524: EMPTY
5525: LIST
5526: ADD
5527: ST_TO_ADDR
5528: GO 5549
// ostatnivip = ostatnivip ^ [ joan ] ;
5530: LD_ADDR_EXP 46
5534: PUSH
5535: LD_EXP 46
5539: PUSH
5540: LD_EXP 30
5544: PUSH
5545: EMPTY
5546: LIST
5547: ADD
5548: ST_TO_ADDR
// end else
5549: GO 5559
// joan = 0 ;
5551: LD_ADDR_EXP 30
5555: PUSH
5556: LD_INT 0
5558: ST_TO_ADDR
// tmp = loadvariable ( bobby , - 1 ) ;
5559: LD_ADDR_VAR 0 2
5563: PUSH
5564: LD_STRING bobby
5566: PPUSH
5567: LD_INT 1
5569: NEG
5570: PPUSH
5571: CALL_OW 30
5575: ST_TO_ADDR
// if tmp then
5576: LD_VAR 0 2
5580: IFFALSE 5647
// begin bobby = createcharacter ( Bobby ) ;
5582: LD_ADDR_EXP 31
5586: PUSH
5587: LD_STRING Bobby
5589: PPUSH
5590: CALL_OW 34
5594: ST_TO_ADDR
// if tmp = 1 then
5595: LD_VAR 0 2
5599: PUSH
5600: LD_INT 1
5602: EQUAL
5603: IFFALSE 5626
// mojivip = mojivip ^ [ bobby ] else
5605: LD_ADDR_EXP 45
5609: PUSH
5610: LD_EXP 45
5614: PUSH
5615: LD_EXP 31
5619: PUSH
5620: EMPTY
5621: LIST
5622: ADD
5623: ST_TO_ADDR
5624: GO 5645
// ostatnivip = ostatnivip ^ [ bobby ] ;
5626: LD_ADDR_EXP 46
5630: PUSH
5631: LD_EXP 46
5635: PUSH
5636: LD_EXP 31
5640: PUSH
5641: EMPTY
5642: LIST
5643: ADD
5644: ST_TO_ADDR
// end else
5645: GO 5655
// bobby = 0 ;
5647: LD_ADDR_EXP 31
5651: PUSH
5652: LD_INT 0
5654: ST_TO_ADDR
// tmp = loadvariable ( cyrus , - 1 ) ;
5655: LD_ADDR_VAR 0 2
5659: PUSH
5660: LD_STRING cyrus
5662: PPUSH
5663: LD_INT 1
5665: NEG
5666: PPUSH
5667: CALL_OW 30
5671: ST_TO_ADDR
// if tmp then
5672: LD_VAR 0 2
5676: IFFALSE 5743
// begin cyrus = createcharacter ( Cyrus ) ;
5678: LD_ADDR_EXP 32
5682: PUSH
5683: LD_STRING Cyrus
5685: PPUSH
5686: CALL_OW 34
5690: ST_TO_ADDR
// if tmp = 1 then
5691: LD_VAR 0 2
5695: PUSH
5696: LD_INT 1
5698: EQUAL
5699: IFFALSE 5722
// mojivip = mojivip ^ [ cyrus ] else
5701: LD_ADDR_EXP 45
5705: PUSH
5706: LD_EXP 45
5710: PUSH
5711: LD_EXP 32
5715: PUSH
5716: EMPTY
5717: LIST
5718: ADD
5719: ST_TO_ADDR
5720: GO 5741
// ostatnivip = ostatnivip ^ [ cyrus ] ;
5722: LD_ADDR_EXP 46
5726: PUSH
5727: LD_EXP 46
5731: PUSH
5732: LD_EXP 32
5736: PUSH
5737: EMPTY
5738: LIST
5739: ADD
5740: ST_TO_ADDR
// end else
5741: GO 5751
// cyrus = 0 ;
5743: LD_ADDR_EXP 32
5747: PUSH
5748: LD_INT 0
5750: ST_TO_ADDR
// tmp = loadvariable ( lisa , - 1 ) ;
5751: LD_ADDR_VAR 0 2
5755: PUSH
5756: LD_STRING lisa
5758: PPUSH
5759: LD_INT 1
5761: NEG
5762: PPUSH
5763: CALL_OW 30
5767: ST_TO_ADDR
// if tmp then
5768: LD_VAR 0 2
5772: IFFALSE 5839
// begin lisa = createcharacter ( Lisa ) ;
5774: LD_ADDR_EXP 33
5778: PUSH
5779: LD_STRING Lisa
5781: PPUSH
5782: CALL_OW 34
5786: ST_TO_ADDR
// if tmp = 1 then
5787: LD_VAR 0 2
5791: PUSH
5792: LD_INT 1
5794: EQUAL
5795: IFFALSE 5818
// mojivip = mojivip ^ [ lisa ] else
5797: LD_ADDR_EXP 45
5801: PUSH
5802: LD_EXP 45
5806: PUSH
5807: LD_EXP 33
5811: PUSH
5812: EMPTY
5813: LIST
5814: ADD
5815: ST_TO_ADDR
5816: GO 5837
// ostatnivip = ostatnivip ^ [ lisa ] ;
5818: LD_ADDR_EXP 46
5822: PUSH
5823: LD_EXP 46
5827: PUSH
5828: LD_EXP 33
5832: PUSH
5833: EMPTY
5834: LIST
5835: ADD
5836: ST_TO_ADDR
// end else
5837: GO 5847
// lisa = 0 ;
5839: LD_ADDR_EXP 33
5843: PUSH
5844: LD_INT 0
5846: ST_TO_ADDR
// tmp = loadvariable ( frank , - 1 ) ;
5847: LD_ADDR_VAR 0 2
5851: PUSH
5852: LD_STRING frank
5854: PPUSH
5855: LD_INT 1
5857: NEG
5858: PPUSH
5859: CALL_OW 30
5863: ST_TO_ADDR
// if tmp then
5864: LD_VAR 0 2
5868: IFFALSE 5935
// begin frank = createcharacter ( Frank ) ;
5870: LD_ADDR_EXP 34
5874: PUSH
5875: LD_STRING Frank
5877: PPUSH
5878: CALL_OW 34
5882: ST_TO_ADDR
// if tmp = 1 then
5883: LD_VAR 0 2
5887: PUSH
5888: LD_INT 1
5890: EQUAL
5891: IFFALSE 5914
// mojivip = mojivip ^ [ frank ] else
5893: LD_ADDR_EXP 45
5897: PUSH
5898: LD_EXP 45
5902: PUSH
5903: LD_EXP 34
5907: PUSH
5908: EMPTY
5909: LIST
5910: ADD
5911: ST_TO_ADDR
5912: GO 5933
// ostatnivip = ostatnivip ^ [ frank ] ;
5914: LD_ADDR_EXP 46
5918: PUSH
5919: LD_EXP 46
5923: PUSH
5924: LD_EXP 34
5928: PUSH
5929: EMPTY
5930: LIST
5931: ADD
5932: ST_TO_ADDR
// end else
5933: GO 5943
// frank = 0 ;
5935: LD_ADDR_EXP 34
5939: PUSH
5940: LD_INT 0
5942: ST_TO_ADDR
// tmp = loadvariable ( cornell , - 1 ) ;
5943: LD_ADDR_VAR 0 2
5947: PUSH
5948: LD_STRING cornell
5950: PPUSH
5951: LD_INT 1
5953: NEG
5954: PPUSH
5955: CALL_OW 30
5959: ST_TO_ADDR
// if tmp then
5960: LD_VAR 0 2
5964: IFFALSE 6031
// begin markc = createcharacter ( Cornell ) ;
5966: LD_ADDR_EXP 35
5970: PUSH
5971: LD_STRING Cornell
5973: PPUSH
5974: CALL_OW 34
5978: ST_TO_ADDR
// if tmp = 1 then
5979: LD_VAR 0 2
5983: PUSH
5984: LD_INT 1
5986: EQUAL
5987: IFFALSE 6010
// mojivip = mojivip ^ [ markc ] else
5989: LD_ADDR_EXP 45
5993: PUSH
5994: LD_EXP 45
5998: PUSH
5999: LD_EXP 35
6003: PUSH
6004: EMPTY
6005: LIST
6006: ADD
6007: ST_TO_ADDR
6008: GO 6029
// ostatnivip = ostatnivip ^ [ markc ] ;
6010: LD_ADDR_EXP 46
6014: PUSH
6015: LD_EXP 46
6019: PUSH
6020: LD_EXP 35
6024: PUSH
6025: EMPTY
6026: LIST
6027: ADD
6028: ST_TO_ADDR
// end else
6029: GO 6039
// markc = 0 ;
6031: LD_ADDR_EXP 35
6035: PUSH
6036: LD_INT 0
6038: ST_TO_ADDR
// tmp = loadvariable ( brown , - 1 ) ;
6039: LD_ADDR_VAR 0 2
6043: PUSH
6044: LD_STRING brown
6046: PPUSH
6047: LD_INT 1
6049: NEG
6050: PPUSH
6051: CALL_OW 30
6055: ST_TO_ADDR
// if tmp then
6056: LD_VAR 0 2
6060: IFFALSE 6127
// begin brown = createcharacter ( Brown ) ;
6062: LD_ADDR_EXP 41
6066: PUSH
6067: LD_STRING Brown
6069: PPUSH
6070: CALL_OW 34
6074: ST_TO_ADDR
// if tmp = 1 then
6075: LD_VAR 0 2
6079: PUSH
6080: LD_INT 1
6082: EQUAL
6083: IFFALSE 6106
// mojivip = mojivip ^ [ brown ] else
6085: LD_ADDR_EXP 45
6089: PUSH
6090: LD_EXP 45
6094: PUSH
6095: LD_EXP 41
6099: PUSH
6100: EMPTY
6101: LIST
6102: ADD
6103: ST_TO_ADDR
6104: GO 6125
// ostatnivip = ostatnivip ^ [ brown ] ;
6106: LD_ADDR_EXP 46
6110: PUSH
6111: LD_EXP 46
6115: PUSH
6116: LD_EXP 41
6120: PUSH
6121: EMPTY
6122: LIST
6123: ADD
6124: ST_TO_ADDR
// end else
6125: GO 6135
// brown = 0 ;
6127: LD_ADDR_EXP 41
6131: PUSH
6132: LD_INT 0
6134: ST_TO_ADDR
// tmp = loadvariable ( lucy , - 1 ) ;
6135: LD_ADDR_VAR 0 2
6139: PUSH
6140: LD_STRING lucy
6142: PPUSH
6143: LD_INT 1
6145: NEG
6146: PPUSH
6147: CALL_OW 30
6151: ST_TO_ADDR
// if tmp then
6152: LD_VAR 0 2
6156: IFFALSE 6223
// begin lucy = createcharacter ( Donaldson ) ;
6158: LD_ADDR_EXP 42
6162: PUSH
6163: LD_STRING Donaldson
6165: PPUSH
6166: CALL_OW 34
6170: ST_TO_ADDR
// if tmp = 1 then
6171: LD_VAR 0 2
6175: PUSH
6176: LD_INT 1
6178: EQUAL
6179: IFFALSE 6202
// mojivip = mojivip ^ [ lucy ] else
6181: LD_ADDR_EXP 45
6185: PUSH
6186: LD_EXP 45
6190: PUSH
6191: LD_EXP 42
6195: PUSH
6196: EMPTY
6197: LIST
6198: ADD
6199: ST_TO_ADDR
6200: GO 6221
// ostatnivip = ostatnivip ^ [ lucy ] ;
6202: LD_ADDR_EXP 46
6206: PUSH
6207: LD_EXP 46
6211: PUSH
6212: LD_EXP 42
6216: PUSH
6217: EMPTY
6218: LIST
6219: ADD
6220: ST_TO_ADDR
// end else
6221: GO 6231
// lucy = 0 ;
6223: LD_ADDR_EXP 42
6227: PUSH
6228: LD_INT 0
6230: ST_TO_ADDR
// tmp = loadvariable ( gladstone , - 1 ) ;
6231: LD_ADDR_VAR 0 2
6235: PUSH
6236: LD_STRING gladstone
6238: PPUSH
6239: LD_INT 1
6241: NEG
6242: PPUSH
6243: CALL_OW 30
6247: ST_TO_ADDR
// if tmp then
6248: LD_VAR 0 2
6252: IFFALSE 6319
// begin tim = createcharacter ( Gladstone ) ;
6254: LD_ADDR_EXP 36
6258: PUSH
6259: LD_STRING Gladstone
6261: PPUSH
6262: CALL_OW 34
6266: ST_TO_ADDR
// if tmp = 1 then
6267: LD_VAR 0 2
6271: PUSH
6272: LD_INT 1
6274: EQUAL
6275: IFFALSE 6298
// mojivip = mojivip ^ [ tim ] else
6277: LD_ADDR_EXP 45
6281: PUSH
6282: LD_EXP 45
6286: PUSH
6287: LD_EXP 36
6291: PUSH
6292: EMPTY
6293: LIST
6294: ADD
6295: ST_TO_ADDR
6296: GO 6317
// ostatnivip = ostatnivip ^ [ tim ] ;
6298: LD_ADDR_EXP 46
6302: PUSH
6303: LD_EXP 46
6307: PUSH
6308: LD_EXP 36
6312: PUSH
6313: EMPTY
6314: LIST
6315: ADD
6316: ST_TO_ADDR
// end else
6317: GO 6327
// tim = 0 ;
6319: LD_ADDR_EXP 36
6323: PUSH
6324: LD_INT 0
6326: ST_TO_ADDR
// tmp = loadvariable ( denis , - 1 ) ;
6327: LD_ADDR_VAR 0 2
6331: PUSH
6332: LD_STRING denis
6334: PPUSH
6335: LD_INT 1
6337: NEG
6338: PPUSH
6339: CALL_OW 30
6343: ST_TO_ADDR
// if tmp then
6344: LD_VAR 0 2
6348: IFFALSE 6415
// begin denis = createcharacter ( Denis ) ;
6350: LD_ADDR_EXP 37
6354: PUSH
6355: LD_STRING Denis
6357: PPUSH
6358: CALL_OW 34
6362: ST_TO_ADDR
// if tmp = 1 then
6363: LD_VAR 0 2
6367: PUSH
6368: LD_INT 1
6370: EQUAL
6371: IFFALSE 6394
// mojivip = mojivip ^ [ denis ] else
6373: LD_ADDR_EXP 45
6377: PUSH
6378: LD_EXP 45
6382: PUSH
6383: LD_EXP 37
6387: PUSH
6388: EMPTY
6389: LIST
6390: ADD
6391: ST_TO_ADDR
6392: GO 6413
// ostatnivip = ostatnivip ^ [ denis ] ;
6394: LD_ADDR_EXP 46
6398: PUSH
6399: LD_EXP 46
6403: PUSH
6404: LD_EXP 37
6408: PUSH
6409: EMPTY
6410: LIST
6411: ADD
6412: ST_TO_ADDR
// end else
6413: GO 6423
// denis = 0 ;
6415: LD_ADDR_EXP 37
6419: PUSH
6420: LD_INT 0
6422: ST_TO_ADDR
// tmp = loadvariable ( yamoko , - 1 ) ;
6423: LD_ADDR_VAR 0 2
6427: PUSH
6428: LD_STRING yamoko
6430: PPUSH
6431: LD_INT 1
6433: NEG
6434: PPUSH
6435: CALL_OW 30
6439: ST_TO_ADDR
// if tmp then
6440: LD_VAR 0 2
6444: IFFALSE 6511
// begin yamoko = createcharacter ( Yamoko ) ;
6446: LD_ADDR_EXP 38
6450: PUSH
6451: LD_STRING Yamoko
6453: PPUSH
6454: CALL_OW 34
6458: ST_TO_ADDR
// if tmp = 1 then
6459: LD_VAR 0 2
6463: PUSH
6464: LD_INT 1
6466: EQUAL
6467: IFFALSE 6490
// mojivip = mojivip ^ [ yamoko ] else
6469: LD_ADDR_EXP 45
6473: PUSH
6474: LD_EXP 45
6478: PUSH
6479: LD_EXP 38
6483: PUSH
6484: EMPTY
6485: LIST
6486: ADD
6487: ST_TO_ADDR
6488: GO 6509
// ostatnivip = ostatnivip ^ [ yamoko ] ;
6490: LD_ADDR_EXP 46
6494: PUSH
6495: LD_EXP 46
6499: PUSH
6500: LD_EXP 38
6504: PUSH
6505: EMPTY
6506: LIST
6507: ADD
6508: ST_TO_ADDR
// end else
6509: GO 6519
// yamoko = 0 ;
6511: LD_ADDR_EXP 38
6515: PUSH
6516: LD_INT 0
6518: ST_TO_ADDR
// tmp = loadvariable ( gary , - 1 ) ;
6519: LD_ADDR_VAR 0 2
6523: PUSH
6524: LD_STRING gary
6526: PPUSH
6527: LD_INT 1
6529: NEG
6530: PPUSH
6531: CALL_OW 30
6535: ST_TO_ADDR
// if tmp then
6536: LD_VAR 0 2
6540: IFFALSE 6607
// begin gary = createcharacter ( Gary ) ;
6542: LD_ADDR_EXP 39
6546: PUSH
6547: LD_STRING Gary
6549: PPUSH
6550: CALL_OW 34
6554: ST_TO_ADDR
// if tmp = 1 then
6555: LD_VAR 0 2
6559: PUSH
6560: LD_INT 1
6562: EQUAL
6563: IFFALSE 6586
// mojivip = mojivip ^ [ gary ] else
6565: LD_ADDR_EXP 45
6569: PUSH
6570: LD_EXP 45
6574: PUSH
6575: LD_EXP 39
6579: PUSH
6580: EMPTY
6581: LIST
6582: ADD
6583: ST_TO_ADDR
6584: GO 6605
// ostatnivip = ostatnivip ^ [ gary ] ;
6586: LD_ADDR_EXP 46
6590: PUSH
6591: LD_EXP 46
6595: PUSH
6596: LD_EXP 39
6600: PUSH
6601: EMPTY
6602: LIST
6603: ADD
6604: ST_TO_ADDR
// end else
6605: GO 6615
// gary = 0 ;
6607: LD_ADDR_EXP 39
6611: PUSH
6612: LD_INT 0
6614: ST_TO_ADDR
// tmp = loadvariable ( simms , - 1 ) ;
6615: LD_ADDR_VAR 0 2
6619: PUSH
6620: LD_STRING simms
6622: PPUSH
6623: LD_INT 1
6625: NEG
6626: PPUSH
6627: CALL_OW 30
6631: ST_TO_ADDR
// if tmp then
6632: LD_VAR 0 2
6636: IFFALSE 6703
// begin simms = createcharacter ( Simms ) ;
6638: LD_ADDR_EXP 40
6642: PUSH
6643: LD_STRING Simms
6645: PPUSH
6646: CALL_OW 34
6650: ST_TO_ADDR
// if tmp = 1 then
6651: LD_VAR 0 2
6655: PUSH
6656: LD_INT 1
6658: EQUAL
6659: IFFALSE 6682
// mojivip = mojivip ^ [ simms ] else
6661: LD_ADDR_EXP 45
6665: PUSH
6666: LD_EXP 45
6670: PUSH
6671: LD_EXP 40
6675: PUSH
6676: EMPTY
6677: LIST
6678: ADD
6679: ST_TO_ADDR
6680: GO 6701
// ostatnivip = ostatnivip ^ [ simms ] ;
6682: LD_ADDR_EXP 46
6686: PUSH
6687: LD_EXP 46
6691: PUSH
6692: LD_EXP 40
6696: PUSH
6697: EMPTY
6698: LIST
6699: ADD
6700: ST_TO_ADDR
// end else
6701: GO 6711
// simms = 0 ;
6703: LD_ADDR_EXP 40
6707: PUSH
6708: LD_INT 0
6710: ST_TO_ADDR
// if not testvariable ( mojiam12a_c ) then
6711: LD_STRING mojiam12a_c
6713: PPUSH
6714: CALL_OW 27
6718: NOT
6719: IFFALSE 6736
// buildquery ( a co intro?!? (neny mojiam12a_c) , [ OK ] ) else
6721: LD_STRING a co intro?!? (neny mojiam12a_c)
6723: PPUSH
6724: LD_STRING OK
6726: PUSH
6727: EMPTY
6728: LIST
6729: PPUSH
6730: CALL_OW 99
6734: GO 6781
// begin tmp2 = loadvariable ( mojiam12a_c , - 1 ) ;
6736: LD_ADDR_VAR 0 3
6740: PUSH
6741: LD_STRING mojiam12a_c
6743: PPUSH
6744: LD_INT 1
6746: NEG
6747: PPUSH
6748: CALL_OW 30
6752: ST_TO_ADDR
// if tmp2 and checkcharacterset ( mojiam12a ) then
6753: LD_VAR 0 3
6757: PUSH
6758: LD_STRING mojiam12a
6760: PPUSH
6761: CALL_OW 29
6765: AND
6766: IFFALSE 6781
// moji = createcharacterset ( mojiam12a ) ;
6768: LD_ADDR_EXP 44
6772: PUSH
6773: LD_STRING mojiam12a
6775: PPUSH
6776: CALL_OW 31
6780: ST_TO_ADDR
// end ; disable ( 03 ) ;
6781: LD_INT 3
6783: DISABLE_MARKED
// takoviti = mojivip ^ moji ^ ostatnivip ;
6784: LD_ADDR_EXP 26
6788: PUSH
6789: LD_EXP 45
6793: PUSH
6794: LD_EXP 44
6798: ADD
6799: PUSH
6800: LD_EXP 46
6804: ADD
6805: ST_TO_ADDR
// moji_backup = mojivip ^ moji ;
6806: LD_ADDR_EXP 50
6810: PUSH
6811: LD_EXP 45
6815: PUSH
6816: LD_EXP 44
6820: ADD
6821: ST_TO_ADDR
// tmp2 = pocetmist - takoviti ;
6822: LD_ADDR_VAR 0 3
6826: PUSH
6827: LD_EXP 49
6831: PUSH
6832: LD_EXP 26
6836: MINUS
6837: ST_TO_ADDR
// for tmp = 1 to tmp2 do
6838: LD_ADDR_VAR 0 2
6842: PUSH
6843: DOUBLE
6844: LD_INT 1
6846: DEC
6847: ST_TO_ADDR
6848: LD_VAR 0 3
6852: PUSH
6853: FOR_TO
6854: IFFALSE 6927
// begin tmp3 = rand ( 1 , 2 ) ;
6856: LD_ADDR_VAR 0 4
6860: PUSH
6861: LD_INT 1
6863: PPUSH
6864: LD_INT 2
6866: PPUSH
6867: CALL_OW 12
6871: ST_TO_ADDR
// preparehuman ( rand ( 1 , 2 ) , [ class_soldier , class_scientistic ] [ tmp3 ] , 6 ) ;
6872: LD_INT 1
6874: PPUSH
6875: LD_INT 2
6877: PPUSH
6878: CALL_OW 12
6882: PPUSH
6883: LD_INT 1
6885: PUSH
6886: LD_INT 4
6888: PUSH
6889: EMPTY
6890: LIST
6891: LIST
6892: PUSH
6893: LD_VAR 0 4
6897: ARRAY
6898: PPUSH
6899: LD_INT 6
6901: PPUSH
6902: CALL_OW 380
// takoviti = takoviti ^ [ createhuman ] ;
6906: LD_ADDR_EXP 26
6910: PUSH
6911: LD_EXP 26
6915: PUSH
6916: CALL_OW 44
6920: PUSH
6921: EMPTY
6922: LIST
6923: ADD
6924: ST_TO_ADDR
// end ;
6925: GO 6853
6927: POP
6928: POP
// if debug then
6929: LD_EXP 19
6933: IFFALSE 6966
// begin debug_strings = [ moji , mojivip , ostatnivip , takoviti ] ;
6935: LD_ADDR_OWVAR 48
6939: PUSH
6940: LD_EXP 44
6944: PUSH
6945: LD_EXP 45
6949: PUSH
6950: LD_EXP 46
6954: PUSH
6955: LD_EXP 26
6959: PUSH
6960: EMPTY
6961: LIST
6962: LIST
6963: LIST
6964: LIST
6965: ST_TO_ADDR
// end ; comhold ( takoviti ) ;
6966: LD_EXP 26
6970: PPUSH
6971: CALL_OW 140
// placeunitxy ( john , 115 , 14 , false ) ;
6975: LD_EXP 27
6979: PPUSH
6980: LD_INT 115
6982: PPUSH
6983: LD_INT 14
6985: PPUSH
6986: LD_INT 0
6988: PPUSH
6989: CALL_OW 48
// placeunitxy ( roth , 118 , 14 , false ) ;
6993: LD_EXP 29
6997: PPUSH
6998: LD_INT 118
7000: PPUSH
7001: LD_INT 14
7003: PPUSH
7004: LD_INT 0
7006: PPUSH
7007: CALL_OW 48
// comhold ( [ john , roth ] ) ;
7011: LD_EXP 27
7015: PUSH
7016: LD_EXP 29
7020: PUSH
7021: EMPTY
7022: LIST
7023: LIST
7024: PPUSH
7025: CALL_OW 140
// centernowonunits ( [ john , roth ] ) ;
7029: LD_EXP 27
7033: PUSH
7034: LD_EXP 29
7038: PUSH
7039: EMPTY
7040: LIST
7041: LIST
7042: PPUSH
7043: CALL_OW 87
// interface_hidden = true ;
7047: LD_ADDR_OWVAR 54
7051: PUSH
7052: LD_INT 1
7054: ST_TO_ADDR
// dialogueon ;
7055: CALL_OW 6
// dwait ( 0 0$0.5 ) ;
7059: LD_INT 18
7061: PPUSH
7062: CALL_OW 68
// say ( john , D1-JMM-1 ) ;
7066: LD_EXP 27
7070: PPUSH
7071: LD_STRING D1-JMM-1
7073: PPUSH
7074: CALL_OW 88
// say ( roth , D1-Roth-1 ) ;
7078: LD_EXP 29
7082: PPUSH
7083: LD_STRING D1-Roth-1
7085: PPUSH
7086: CALL_OW 88
// say ( john , D1-JMM-2 ) ;
7090: LD_EXP 27
7094: PPUSH
7095: LD_STRING D1-JMM-2
7097: PPUSH
7098: CALL_OW 88
// say ( roth , D1-Roth-2 ) ;
7102: LD_EXP 29
7106: PPUSH
7107: LD_STRING D1-Roth-2
7109: PPUSH
7110: CALL_OW 88
// say ( john , D1-JMM-3 ) ;
7114: LD_EXP 27
7118: PPUSH
7119: LD_STRING D1-JMM-3
7121: PPUSH
7122: CALL_OW 88
// say ( roth , D1-Roth-3 ) ;
7126: LD_EXP 29
7130: PPUSH
7131: LD_STRING D1-Roth-3
7133: PPUSH
7134: CALL_OW 88
// settech ( tech_partinvis , al , state_researched ) ;
7138: LD_INT 16
7140: PPUSH
7141: LD_EXP 2
7145: PPUSH
7146: LD_INT 2
7148: PPUSH
7149: CALL_OW 322
// dialogueoff ;
7153: CALL_OW 7
// cominvisible ( roth ) ;
7157: LD_EXP 29
7161: PPUSH
7162: CALL_OW 152
// wait ( 0 0$1.5 ) ;
7166: LD_INT 52
7168: PPUSH
7169: CALL_OW 67
// dialogueon ;
7173: CALL_OW 6
// say ( john , D1-JMM-4 ) ;
7177: LD_EXP 27
7181: PPUSH
7182: LD_STRING D1-JMM-4
7184: PPUSH
7185: CALL_OW 88
// dialogueoff ;
7189: CALL_OW 7
// comstop ( roth ) ;
7193: LD_EXP 29
7197: PPUSH
7198: CALL_OW 141
// wait ( 5 ) ;
7202: LD_INT 5
7204: PPUSH
7205: CALL_OW 67
// dialogueon ;
7209: CALL_OW 6
// say ( john , D1-JMM-4a ) ;
7213: LD_EXP 27
7217: PPUSH
7218: LD_STRING D1-JMM-4a
7220: PPUSH
7221: CALL_OW 88
// say ( roth , D1-Roth-4 ) ;
7225: LD_EXP 29
7229: PPUSH
7230: LD_STRING D1-Roth-4
7232: PPUSH
7233: CALL_OW 88
// say ( john , D1-JMM-5 ) ;
7237: LD_EXP 27
7241: PPUSH
7242: LD_STRING D1-JMM-5
7244: PPUSH
7245: CALL_OW 88
// say ( roth , D1-Roth-5 ) ;
7249: LD_EXP 29
7253: PPUSH
7254: LD_STRING D1-Roth-5
7256: PPUSH
7257: CALL_OW 88
// say ( john , D1-JMM-6 ) ;
7261: LD_EXP 27
7265: PPUSH
7266: LD_STRING D1-JMM-6
7268: PPUSH
7269: CALL_OW 88
// say ( roth , D1-Roth-6 ) ;
7273: LD_EXP 29
7277: PPUSH
7278: LD_STRING D1-Roth-6
7280: PPUSH
7281: CALL_OW 88
// say ( john , D1-JMM-7 ) ;
7285: LD_EXP 27
7289: PPUSH
7290: LD_STRING D1-JMM-7
7292: PPUSH
7293: CALL_OW 88
// say ( roth , D1-Roth-7 ) ;
7297: LD_EXP 29
7301: PPUSH
7302: LD_STRING D1-Roth-7
7304: PPUSH
7305: CALL_OW 88
// dialogueoff ;
7309: CALL_OW 7
// placeunitxy ( powell , 115 , 27 , false ) ;
7313: LD_EXP 28
7317: PPUSH
7318: LD_INT 115
7320: PPUSH
7321: LD_INT 27
7323: PPUSH
7324: LD_INT 0
7326: PPUSH
7327: CALL_OW 48
// commovexy ( powell , 115 , 23 ) ;
7331: LD_EXP 28
7335: PPUSH
7336: LD_INT 115
7338: PPUSH
7339: LD_INT 23
7341: PPUSH
7342: CALL_OW 111
// while not isinarea ( powell , powpl ) do
7346: LD_EXP 28
7350: PPUSH
7351: LD_INT 15
7353: PPUSH
7354: CALL_OW 308
7358: NOT
7359: IFFALSE 7370
// wait ( 0 0$0.25 ) ;
7361: LD_INT 9
7363: PPUSH
7364: CALL_OW 67
7368: GO 7346
// dialogueon ;
7370: CALL_OW 6
// say ( powell , D1-Pow-7 ) ;
7374: LD_EXP 28
7378: PPUSH
7379: LD_STRING D1-Pow-7
7381: PPUSH
7382: CALL_OW 88
// say ( john , D1-JMM-8 ) ;
7386: LD_EXP 27
7390: PPUSH
7391: LD_STRING D1-JMM-8
7393: PPUSH
7394: CALL_OW 88
// say ( powell , D1-Pow-8 ) ;
7398: LD_EXP 28
7402: PPUSH
7403: LD_STRING D1-Pow-8
7405: PPUSH
7406: CALL_OW 88
// say ( john , D1-JMM-9 ) ;
7410: LD_EXP 27
7414: PPUSH
7415: LD_STRING D1-JMM-9
7417: PPUSH
7418: CALL_OW 88
// dialogueoff ;
7422: CALL_OW 7
// ingameon ;
7426: CALL_OW 8
// commovexy ( powell , 115 , 29 ) ;
7430: LD_EXP 28
7434: PPUSH
7435: LD_INT 115
7437: PPUSH
7438: LD_INT 29
7440: PPUSH
7441: CALL_OW 111
// while not isinarea ( powell , powpl2 ) do
7445: LD_EXP 28
7449: PPUSH
7450: LD_INT 16
7452: PPUSH
7453: CALL_OW 308
7457: NOT
7458: IFFALSE 7469
// wait ( 0 0$0.25 ) ;
7460: LD_INT 9
7462: PPUSH
7463: CALL_OW 67
7467: GO 7445
// ingameoff ;
7469: CALL_OW 9
// interface_hidden = true ;
7473: LD_ADDR_OWVAR 54
7477: PUSH
7478: LD_INT 1
7480: ST_TO_ADDR
// dialogueon ;
7481: CALL_OW 6
// sayradio ( powell , D1-Pow-9 ) ;
7485: LD_EXP 28
7489: PPUSH
7490: LD_STRING D1-Pow-9
7492: PPUSH
7493: CALL_OW 94
// setside ( [ roth ] , oth ) ;
7497: LD_EXP 29
7501: PUSH
7502: EMPTY
7503: LIST
7504: PPUSH
7505: LD_EXP 3
7509: PPUSH
7510: CALL_OW 235
// comhold ( roth ) ;
7514: LD_EXP 29
7518: PPUSH
7519: CALL_OW 140
// if joan and ( not ( joan in mojivip ) ) then
7523: LD_EXP 30
7527: PUSH
7528: LD_EXP 30
7532: PUSH
7533: LD_EXP 45
7537: IN
7538: NOT
7539: AND
7540: IFFALSE 7554
// sayradio ( joan , D1-Joan-9 ) ;
7542: LD_EXP 30
7546: PPUSH
7547: LD_STRING D1-Joan-9
7549: PPUSH
7550: CALL_OW 94
// say ( roth , D1-Roth-9 ) ;
7554: LD_EXP 29
7558: PPUSH
7559: LD_STRING D1-Roth-9
7561: PPUSH
7562: CALL_OW 88
// say ( john , D1-JMM-10 ) ;
7566: LD_EXP 27
7570: PPUSH
7571: LD_STRING D1-JMM-10
7573: PPUSH
7574: CALL_OW 88
// dialogueoff ;
7578: CALL_OW 7
// removeunit ( powell ) ;
7582: LD_EXP 28
7586: PPUSH
7587: CALL_OW 64
// interface_hidden = false ;
7591: LD_ADDR_OWVAR 54
7595: PUSH
7596: LD_INT 0
7598: ST_TO_ADDR
// setattitude ( al , am , att_enemy , true ) ;
7599: LD_EXP 2
7603: PPUSH
7604: LD_EXP 1
7608: PPUSH
7609: LD_INT 2
7611: PPUSH
7612: LD_INT 1
7614: PPUSH
7615: CALL_OW 80
// for tmp = 1 to pocetmist do
7619: LD_ADDR_VAR 0 2
7623: PUSH
7624: DOUBLE
7625: LD_INT 1
7627: DEC
7628: ST_TO_ADDR
7629: LD_EXP 49
7633: PUSH
7634: FOR_TO
7635: IFFALSE 7702
// begin placeunitxyr ( takoviti [ tmp ] , mista [ tmp ] [ 1 ] , mista [ tmp ] [ 2 ] , 1 , false ) ;
7637: LD_EXP 26
7641: PUSH
7642: LD_VAR 0 2
7646: ARRAY
7647: PPUSH
7648: LD_EXP 47
7652: PUSH
7653: LD_VAR 0 2
7657: ARRAY
7658: PUSH
7659: LD_INT 1
7661: ARRAY
7662: PPUSH
7663: LD_EXP 47
7667: PUSH
7668: LD_VAR 0 2
7672: ARRAY
7673: PUSH
7674: LD_INT 2
7676: ARRAY
7677: PPUSH
7678: LD_INT 1
7680: PPUSH
7681: LD_INT 0
7683: PPUSH
7684: CALL_OW 50
// settag ( tmp , 1 ) ;
7688: LD_VAR 0 2
7692: PPUSH
7693: LD_INT 1
7695: PPUSH
7696: CALL_OW 109
// end ;
7700: GO 7634
7702: POP
7703: POP
// vesel = 0 ;
7704: LD_ADDR_LOC 7
7708: PUSH
7709: LD_INT 0
7711: ST_TO_ADDR
// joanmet = false ;
7712: LD_ADDR_EXP 51
7716: PUSH
7717: LD_INT 0
7719: ST_TO_ADDR
// frankmet = false ;
7720: LD_ADDR_EXP 52
7724: PUSH
7725: LD_INT 0
7727: ST_TO_ADDR
// lisamet = false ;
7728: LD_ADDR_EXP 53
7732: PUSH
7733: LD_INT 0
7735: ST_TO_ADDR
// enable ( 03 ) ;
7736: LD_INT 3
7738: ENABLE_MARKED
// saveforquickrestart ;
7739: CALL_OW 22
// wait ( 2 ) ;
7743: LD_INT 2
7745: PPUSH
7746: CALL_OW 67
// changemissionobjectives ( M1 ) ;
7750: LD_STRING M1
7752: PPUSH
7753: CALL_OW 337
// setareamapshow ( vychod , 1 ) ;
7757: LD_INT 13
7759: PPUSH
7760: LD_INT 1
7762: PPUSH
7763: CALL_OW 424
// john_vychod = true ;
7767: LD_ADDR_EXP 18
7771: PUSH
7772: LD_INT 1
7774: ST_TO_ADDR
// hint ( Invisibility ) ;
7775: LD_STRING Invisibility
7777: PPUSH
7778: CALL_OW 339
// end ;
7782: LD_VAR 0 1
7786: RET
// var tmpar , vesel ; function isinareaex ( un , lias ) ; var tmp , pm ; begin
7787: LD_INT 0
7789: PPUSH
7790: PPUSH
7791: PPUSH
// result = 0 ;
7792: LD_ADDR_VAR 0 3
7796: PUSH
7797: LD_INT 0
7799: ST_TO_ADDR
// pm = 0 + lias ;
7800: LD_ADDR_VAR 0 5
7804: PUSH
7805: LD_INT 0
7807: PUSH
7808: LD_VAR 0 2
7812: PLUS
7813: ST_TO_ADDR
// for tmp = 1 to pm do
7814: LD_ADDR_VAR 0 4
7818: PUSH
7819: DOUBLE
7820: LD_INT 1
7822: DEC
7823: ST_TO_ADDR
7824: LD_VAR 0 5
7828: PUSH
7829: FOR_TO
7830: IFFALSE 7880
// if isinarea ( un , lias [ tmp ] ) then
7832: LD_VAR 0 1
7836: PPUSH
7837: LD_VAR 0 2
7841: PUSH
7842: LD_VAR 0 4
7846: ARRAY
7847: PPUSH
7848: CALL_OW 308
7852: IFFALSE 7878
// begin tmpar = tmp ;
7854: LD_ADDR_LOC 6
7858: PUSH
7859: LD_VAR 0 4
7863: ST_TO_ADDR
// result = tmp ;
7864: LD_ADDR_VAR 0 3
7868: PUSH
7869: LD_VAR 0 4
7873: ST_TO_ADDR
// exit ;
7874: POP
7875: POP
7876: GO 7882
// end ;
7878: GO 7829
7880: POP
7881: POP
// end ;
7882: LD_VAR 0 3
7886: RET
// every 0 0$0.125 + 2 trigger vesel do
7887: LD_LOC 7
7891: IFFALSE 7948
7893: GO 7895
7895: DISABLE
// begin if not isinarea ( john , areas [ vesel ] ) then
7896: LD_EXP 27
7900: PPUSH
7901: LD_EXP 48
7905: PUSH
7906: LD_LOC 7
7910: ARRAY
7911: PPUSH
7912: CALL_OW 308
7916: NOT
7917: IFFALSE 7947
// begin setside ( takoviti [ vesel ] , am ) ;
7919: LD_EXP 26
7923: PUSH
7924: LD_LOC 7
7928: ARRAY
7929: PPUSH
7930: LD_EXP 1
7934: PPUSH
7935: CALL_OW 235
// vesel = 0 ;
7939: LD_ADDR_LOC 7
7943: PUSH
7944: LD_INT 0
7946: ST_TO_ADDR
// end ; enable ;
7947: ENABLE
// end ;
7948: END
// export joanmet , frankmet , lisamet ; every 0 0$0.5 + 1 trigger isinareaex ( john , areas ) marked 03 do
7949: LD_EXP 27
7953: PPUSH
7954: LD_EXP 48
7958: PPUSH
7959: CALL 7787 0 2
7963: IFFALSE 10306
7965: GO 7967
7967: DISABLE
// begin if gettag ( tmpar ) = - 1 then
7968: LD_LOC 6
7972: PPUSH
7973: CALL_OW 110
7977: PUSH
7978: LD_INT 1
7980: NEG
7981: EQUAL
7982: IFFALSE 7987
// begin enable ;
7984: ENABLE
// exit ;
7985: GO 10306
// end ; case takoviti [ tmpar ] of joan :
7987: LD_EXP 26
7991: PUSH
7992: LD_LOC 6
7996: ARRAY
7997: PUSH
7998: LD_EXP 30
8002: DOUBLE
8003: EQUAL
8004: IFTRUE 8008
8006: GO 8221
8008: POP
// if gettag ( tmpar ) = 1 then
8009: LD_LOC 6
8013: PPUSH
8014: CALL_OW 110
8018: PUSH
8019: LD_INT 1
8021: EQUAL
8022: IFFALSE 8219
// begin settag ( tmpar , 2 ) ;
8024: LD_LOC 6
8028: PPUSH
8029: LD_INT 2
8031: PPUSH
8032: CALL_OW 109
// if joan in mojivip then
8036: LD_EXP 30
8040: PUSH
8041: LD_EXP 45
8045: IN
8046: IFFALSE 8110
// begin setside ( joan , al ) ;
8048: LD_EXP 30
8052: PPUSH
8053: LD_EXP 2
8057: PPUSH
8058: CALL_OW 235
// contacted = contacted + 1 ;
8062: LD_ADDR_EXP 24
8066: PUSH
8067: LD_EXP 24
8071: PUSH
8072: LD_INT 1
8074: PLUS
8075: ST_TO_ADDR
// dialogueon ;
8076: CALL_OW 6
// say ( joan , D3-Joan-Joan-1 ) ;
8080: LD_EXP 30
8084: PPUSH
8085: LD_STRING D3-Joan-Joan-1
8087: PPUSH
8088: CALL_OW 88
// say ( john , D3-Joan-JMM-1 ) ;
8092: LD_EXP 27
8096: PPUSH
8097: LD_STRING D3-Joan-JMM-1
8099: PPUSH
8100: CALL_OW 88
// dialogueoff ;
8104: CALL_OW 7
// end else
8108: GO 8219
// begin joanmet = true ;
8110: LD_ADDR_EXP 51
8114: PUSH
8115: LD_INT 1
8117: ST_TO_ADDR
// dialogueon ;
8118: CALL_OW 6
// say ( joan , D4-Joan-Joan-1 ) ;
8122: LD_EXP 30
8126: PPUSH
8127: LD_STRING D4-Joan-Joan-1
8129: PPUSH
8130: CALL_OW 88
// say ( john , D4-Joan-JMM-1 ) ;
8134: LD_EXP 27
8138: PPUSH
8139: LD_STRING D4-Joan-JMM-1
8141: PPUSH
8142: CALL_OW 88
// say ( joan , D4-Joan-Joan-2 ) ;
8146: LD_EXP 30
8150: PPUSH
8151: LD_STRING D4-Joan-Joan-2
8153: PPUSH
8154: CALL_OW 88
// say ( john , D4-Joan-JMM-2 ) ;
8158: LD_EXP 27
8162: PPUSH
8163: LD_STRING D4-Joan-JMM-2
8165: PPUSH
8166: CALL_OW 88
// say ( joan , D4-Joan-Joan-3 ) ;
8170: LD_EXP 30
8174: PPUSH
8175: LD_STRING D4-Joan-Joan-3
8177: PPUSH
8178: CALL_OW 88
// dialogueoff ;
8182: CALL_OW 7
// setside ( joan , al ) ;
8186: LD_EXP 30
8190: PPUSH
8191: LD_EXP 2
8195: PPUSH
8196: CALL_OW 235
// mojivip = mojivip ^ [ joan ] ;
8200: LD_ADDR_EXP 45
8204: PUSH
8205: LD_EXP 45
8209: PUSH
8210: LD_EXP 30
8214: PUSH
8215: EMPTY
8216: LIST
8217: ADD
8218: ST_TO_ADDR
// end ; end ; bobby :
8219: GO 10305
8221: LD_EXP 31
8225: DOUBLE
8226: EQUAL
8227: IFTRUE 8231
8229: GO 8389
8231: POP
// if gettag ( tmpar ) = 1 then
8232: LD_LOC 6
8236: PPUSH
8237: CALL_OW 110
8241: PUSH
8242: LD_INT 1
8244: EQUAL
8245: IFFALSE 8387
// begin settag ( tmpar , 2 ) ;
8247: LD_LOC 6
8251: PPUSH
8252: LD_INT 2
8254: PPUSH
8255: CALL_OW 109
// if bobby in mojivip then
8259: LD_EXP 31
8263: PUSH
8264: LD_EXP 45
8268: IN
8269: IFFALSE 8333
// begin setside ( bobby , al ) ;
8271: LD_EXP 31
8275: PPUSH
8276: LD_EXP 2
8280: PPUSH
8281: CALL_OW 235
// contacted = contacted + 1 ;
8285: LD_ADDR_EXP 24
8289: PUSH
8290: LD_EXP 24
8294: PUSH
8295: LD_INT 1
8297: PLUS
8298: ST_TO_ADDR
// dialogueon ;
8299: CALL_OW 6
// say ( bobby , D3-Bobby-Bobby-1 ) ;
8303: LD_EXP 31
8307: PPUSH
8308: LD_STRING D3-Bobby-Bobby-1
8310: PPUSH
8311: CALL_OW 88
// say ( john , D3-Bobby-JMM-1 ) ;
8315: LD_EXP 27
8319: PPUSH
8320: LD_STRING D3-Bobby-JMM-1
8322: PPUSH
8323: CALL_OW 88
// dialogueoff ;
8327: CALL_OW 7
// end else
8331: GO 8387
// begin vesel = tmpar ;
8333: LD_ADDR_LOC 7
8337: PUSH
8338: LD_LOC 6
8342: ST_TO_ADDR
// dialogueon ;
8343: CALL_OW 6
// say ( bobby , D4-Bobby-Bobby-1 ) ;
8347: LD_EXP 31
8351: PPUSH
8352: LD_STRING D4-Bobby-Bobby-1
8354: PPUSH
8355: CALL_OW 88
// say ( john , D4-Bobby-JMM-1 ) ;
8359: LD_EXP 27
8363: PPUSH
8364: LD_STRING D4-Bobby-JMM-1
8366: PPUSH
8367: CALL_OW 88
// say ( bobby , D4-Bobby-Bobby-2 ) ;
8371: LD_EXP 31
8375: PPUSH
8376: LD_STRING D4-Bobby-Bobby-2
8378: PPUSH
8379: CALL_OW 88
// dialogueoff ;
8383: CALL_OW 7
// end ; end ; cyrus :
8387: GO 10305
8389: LD_EXP 32
8393: DOUBLE
8394: EQUAL
8395: IFTRUE 8399
8397: GO 8545
8399: POP
// if gettag ( tmpar ) = 1 then
8400: LD_LOC 6
8404: PPUSH
8405: CALL_OW 110
8409: PUSH
8410: LD_INT 1
8412: EQUAL
8413: IFFALSE 8543
// begin settag ( tmpar , 2 ) ;
8415: LD_LOC 6
8419: PPUSH
8420: LD_INT 2
8422: PPUSH
8423: CALL_OW 109
// if cyrus in mojivip then
8427: LD_EXP 32
8431: PUSH
8432: LD_EXP 45
8436: IN
8437: IFFALSE 8501
// begin setside ( cyrus , al ) ;
8439: LD_EXP 32
8443: PPUSH
8444: LD_EXP 2
8448: PPUSH
8449: CALL_OW 235
// contacted = contacted + 1 ;
8453: LD_ADDR_EXP 24
8457: PUSH
8458: LD_EXP 24
8462: PUSH
8463: LD_INT 1
8465: PLUS
8466: ST_TO_ADDR
// dialogueon ;
8467: CALL_OW 6
// say ( cyrus , D3-Cyrus-Cyrus-1 ) ;
8471: LD_EXP 32
8475: PPUSH
8476: LD_STRING D3-Cyrus-Cyrus-1
8478: PPUSH
8479: CALL_OW 88
// say ( john , D3-Cyrus-JMM-1 ) ;
8483: LD_EXP 27
8487: PPUSH
8488: LD_STRING D3-Cyrus-JMM-1
8490: PPUSH
8491: CALL_OW 88
// dialogueoff ;
8495: CALL_OW 7
// end else
8499: GO 8543
// begin vesel = tmpar ;
8501: LD_ADDR_LOC 7
8505: PUSH
8506: LD_LOC 6
8510: ST_TO_ADDR
// dialogueon ;
8511: CALL_OW 6
// say ( cyrus , D4-Cyrus-Cyrus-1 ) ;
8515: LD_EXP 32
8519: PPUSH
8520: LD_STRING D4-Cyrus-Cyrus-1
8522: PPUSH
8523: CALL_OW 88
// say ( john , D4-Cyrus-JMM-1 ) ;
8527: LD_EXP 27
8531: PPUSH
8532: LD_STRING D4-Cyrus-JMM-1
8534: PPUSH
8535: CALL_OW 88
// dialogueoff ;
8539: CALL_OW 7
// end end ; lisa :
8543: GO 10305
8545: LD_EXP 33
8549: DOUBLE
8550: EQUAL
8551: IFTRUE 8555
8553: GO 8894
8555: POP
// if gettag ( tmpar ) = 1 then
8556: LD_LOC 6
8560: PPUSH
8561: CALL_OW 110
8565: PUSH
8566: LD_INT 1
8568: EQUAL
8569: IFFALSE 8892
// begin settag ( tmpar , 2 ) ;
8571: LD_LOC 6
8575: PPUSH
8576: LD_INT 2
8578: PPUSH
8579: CALL_OW 109
// if ( lisa in mojivip ) then
8583: LD_EXP 33
8587: PUSH
8588: LD_EXP 45
8592: IN
8593: IFFALSE 8789
// begin contacted = contacted + 1 ;
8595: LD_ADDR_EXP 24
8599: PUSH
8600: LD_EXP 24
8604: PUSH
8605: LD_INT 1
8607: PLUS
8608: ST_TO_ADDR
// if ( joan = 0 ) or ( not joanmet ) then
8609: LD_EXP 30
8613: PUSH
8614: LD_INT 0
8616: EQUAL
8617: PUSH
8618: LD_EXP 51
8622: NOT
8623: OR
8624: IFFALSE 8682
// begin setside ( lisa , al ) ;
8626: LD_EXP 33
8630: PPUSH
8631: LD_EXP 2
8635: PPUSH
8636: CALL_OW 235
// lisamet = 1 ;
8640: LD_ADDR_EXP 53
8644: PUSH
8645: LD_INT 1
8647: ST_TO_ADDR
// dialogueon ;
8648: CALL_OW 6
// say ( lisa , D3-LisaL-Lisa-1 ) ;
8652: LD_EXP 33
8656: PPUSH
8657: LD_STRING D3-LisaL-Lisa-1
8659: PPUSH
8660: CALL_OW 88
// say ( john , D3-LisaL-JMM-1 ) ;
8664: LD_EXP 27
8668: PPUSH
8669: LD_STRING D3-LisaL-JMM-1
8671: PPUSH
8672: CALL_OW 88
// dialogueoff ;
8676: CALL_OW 7
// end else
8680: GO 8787
// begin vesel = tmpar ;
8682: LD_ADDR_LOC 7
8686: PUSH
8687: LD_LOC 6
8691: ST_TO_ADDR
// dialogueon ;
8692: CALL_OW 6
// say ( lisa , D3-LisaJ-Lisa-1 ) ;
8696: LD_EXP 33
8700: PPUSH
8701: LD_STRING D3-LisaJ-Lisa-1
8703: PPUSH
8704: CALL_OW 88
// say ( john , D3-LisaJ-JMM-1 ) ;
8708: LD_EXP 27
8712: PPUSH
8713: LD_STRING D3-LisaJ-JMM-1
8715: PPUSH
8716: CALL_OW 88
// say ( lisa , D3-LisaJ-Lisa-2 ) ;
8720: LD_EXP 33
8724: PPUSH
8725: LD_STRING D3-LisaJ-Lisa-2
8727: PPUSH
8728: CALL_OW 88
// say ( john , D3-LisaJ-JMM-2 ) ;
8732: LD_EXP 27
8736: PPUSH
8737: LD_STRING D3-LisaJ-JMM-2
8739: PPUSH
8740: CALL_OW 88
// say ( lisa , D3-LisaJ-Lisa-3 ) ;
8744: LD_EXP 33
8748: PPUSH
8749: LD_STRING D3-LisaJ-Lisa-3
8751: PPUSH
8752: CALL_OW 88
// dialogueoff ;
8756: CALL_OW 7
// lisamet = 2 ;
8760: LD_ADDR_EXP 53
8764: PUSH
8765: LD_INT 2
8767: ST_TO_ADDR
// mojivip = mojivip diff [ lisa ] ;
8768: LD_ADDR_EXP 45
8772: PUSH
8773: LD_EXP 45
8777: PUSH
8778: LD_EXP 33
8782: PUSH
8783: EMPTY
8784: LIST
8785: DIFF
8786: ST_TO_ADDR
// end ; end else
8787: GO 8892
// if ( joan = 0 ) or ( not joanmet ) then
8789: LD_EXP 30
8793: PUSH
8794: LD_INT 0
8796: EQUAL
8797: PUSH
8798: LD_EXP 51
8802: NOT
8803: OR
8804: IFFALSE 8838
// begin vesel = tmpar ;
8806: LD_ADDR_LOC 7
8810: PUSH
8811: LD_LOC 6
8815: ST_TO_ADDR
// dialogueon ;
8816: CALL_OW 6
// say ( lisa , D4-LisaL-Lisa-1 ) ;
8820: LD_EXP 33
8824: PPUSH
8825: LD_STRING D4-LisaL-Lisa-1
8827: PPUSH
8828: CALL_OW 88
// dialogueoff ;
8832: CALL_OW 7
// end else
8836: GO 8892
// begin vesel = tmpar ;
8838: LD_ADDR_LOC 7
8842: PUSH
8843: LD_LOC 6
8847: ST_TO_ADDR
// dialogueon ;
8848: CALL_OW 6
// say ( lisa , D4-LisaJ-Lisa-1 ) ;
8852: LD_EXP 33
8856: PPUSH
8857: LD_STRING D4-LisaJ-Lisa-1
8859: PPUSH
8860: CALL_OW 88
// say ( john , D4-LisaJ-JMM-1 ) ;
8864: LD_EXP 27
8868: PPUSH
8869: LD_STRING D4-LisaJ-JMM-1
8871: PPUSH
8872: CALL_OW 88
// say ( lisa , D4-LisaJ-Lisa-2 ) ;
8876: LD_EXP 33
8880: PPUSH
8881: LD_STRING D4-LisaJ-Lisa-2
8883: PPUSH
8884: CALL_OW 88
// dialogueoff ;
8888: CALL_OW 7
// end ; end ; frank :
8892: GO 10305
8894: LD_EXP 34
8898: DOUBLE
8899: EQUAL
8900: IFTRUE 8904
8902: GO 9141
8904: POP
// if gettag ( tmpar ) = 1 then
8905: LD_LOC 6
8909: PPUSH
8910: CALL_OW 110
8914: PUSH
8915: LD_INT 1
8917: EQUAL
8918: IFFALSE 9139
// begin settag ( tmpar , 2 ) ;
8920: LD_LOC 6
8924: PPUSH
8925: LD_INT 2
8927: PPUSH
8928: CALL_OW 109
// if frank in mojivip then
8932: LD_EXP 34
8936: PUSH
8937: LD_EXP 45
8941: IN
8942: IFFALSE 9042
// begin setside ( frank , al ) ;
8944: LD_EXP 34
8948: PPUSH
8949: LD_EXP 2
8953: PPUSH
8954: CALL_OW 235
// contacted = contacted + 1 ;
8958: LD_ADDR_EXP 24
8962: PUSH
8963: LD_EXP 24
8967: PUSH
8968: LD_INT 1
8970: PLUS
8971: ST_TO_ADDR
// dialogueon ;
8972: CALL_OW 6
// say ( frank , D3-Frank-Frank-1 ) ;
8976: LD_EXP 34
8980: PPUSH
8981: LD_STRING D3-Frank-Frank-1
8983: PPUSH
8984: CALL_OW 88
// say ( john , D3-Frank-JMM-1 ) ;
8988: LD_EXP 27
8992: PPUSH
8993: LD_STRING D3-Frank-JMM-1
8995: PPUSH
8996: CALL_OW 88
// say ( frank , D3-Frank-Frank-2 ) ;
9000: LD_EXP 34
9004: PPUSH
9005: LD_STRING D3-Frank-Frank-2
9007: PPUSH
9008: CALL_OW 88
// say ( john , D3-Frank-JMM-2 ) ;
9012: LD_EXP 27
9016: PPUSH
9017: LD_STRING D3-Frank-JMM-2
9019: PPUSH
9020: CALL_OW 88
// say ( frank , D3-Frank-Frank-3 ) ;
9024: LD_EXP 34
9028: PPUSH
9029: LD_STRING D3-Frank-Frank-3
9031: PPUSH
9032: CALL_OW 88
// dialogueoff ;
9036: CALL_OW 7
// end else
9040: GO 9139
// begin frankmet = true ;
9042: LD_ADDR_EXP 52
9046: PUSH
9047: LD_INT 1
9049: ST_TO_ADDR
// dialogueon ;
9050: CALL_OW 6
// say ( frank , D4-Frank-Frank-1 ) ;
9054: LD_EXP 34
9058: PPUSH
9059: LD_STRING D4-Frank-Frank-1
9061: PPUSH
9062: CALL_OW 88
// say ( john , D4-Frank-JMM-1 ) ;
9066: LD_EXP 27
9070: PPUSH
9071: LD_STRING D4-Frank-JMM-1
9073: PPUSH
9074: CALL_OW 88
// say ( frank , D4-Frank-Frank-2 ) ;
9078: LD_EXP 34
9082: PPUSH
9083: LD_STRING D4-Frank-Frank-2
9085: PPUSH
9086: CALL_OW 88
// say ( john , D4-Frank-JMM-2 ) ;
9090: LD_EXP 27
9094: PPUSH
9095: LD_STRING D4-Frank-JMM-2
9097: PPUSH
9098: CALL_OW 88
// dialogueoff ;
9102: CALL_OW 7
// setside ( frank , al ) ;
9106: LD_EXP 34
9110: PPUSH
9111: LD_EXP 2
9115: PPUSH
9116: CALL_OW 235
// mojivip = mojivip ^ [ frank ] ;
9120: LD_ADDR_EXP 45
9124: PUSH
9125: LD_EXP 45
9129: PUSH
9130: LD_EXP 34
9134: PUSH
9135: EMPTY
9136: LIST
9137: ADD
9138: ST_TO_ADDR
// end ; end ; markc :
9139: GO 10305
9141: LD_EXP 35
9145: DOUBLE
9146: EQUAL
9147: IFTRUE 9151
9149: GO 9321
9151: POP
// if gettag ( tmpar ) = 1 then
9152: LD_LOC 6
9156: PPUSH
9157: CALL_OW 110
9161: PUSH
9162: LD_INT 1
9164: EQUAL
9165: IFFALSE 9319
// begin settag ( tmpar , 2 ) ;
9167: LD_LOC 6
9171: PPUSH
9172: LD_INT 2
9174: PPUSH
9175: CALL_OW 109
// if markc in mojivip then
9179: LD_EXP 35
9183: PUSH
9184: LD_EXP 45
9188: IN
9189: IFFALSE 9265
// begin setside ( markc , al ) ;
9191: LD_EXP 35
9195: PPUSH
9196: LD_EXP 2
9200: PPUSH
9201: CALL_OW 235
// contacted = contacted + 1 ;
9205: LD_ADDR_EXP 24
9209: PUSH
9210: LD_EXP 24
9214: PUSH
9215: LD_INT 1
9217: PLUS
9218: ST_TO_ADDR
// dialogueon ;
9219: CALL_OW 6
// say ( markc , D3-Mark-Corn-1 ) ;
9223: LD_EXP 35
9227: PPUSH
9228: LD_STRING D3-Mark-Corn-1
9230: PPUSH
9231: CALL_OW 88
// say ( john , D3-Mark-JMM-1 ) ;
9235: LD_EXP 27
9239: PPUSH
9240: LD_STRING D3-Mark-JMM-1
9242: PPUSH
9243: CALL_OW 88
// say ( markc , D3-Mark-Corn-2 ) ;
9247: LD_EXP 35
9251: PPUSH
9252: LD_STRING D3-Mark-Corn-2
9254: PPUSH
9255: CALL_OW 88
// dialogueoff ;
9259: CALL_OW 7
// end else
9263: GO 9319
// begin vesel = tmpar ;
9265: LD_ADDR_LOC 7
9269: PUSH
9270: LD_LOC 6
9274: ST_TO_ADDR
// dialogueon ;
9275: CALL_OW 6
// say ( markc , D4-Mark-Corn-1 ) ;
9279: LD_EXP 35
9283: PPUSH
9284: LD_STRING D4-Mark-Corn-1
9286: PPUSH
9287: CALL_OW 88
// say ( john , D4-Mark-JMM-1 ) ;
9291: LD_EXP 27
9295: PPUSH
9296: LD_STRING D4-Mark-JMM-1
9298: PPUSH
9299: CALL_OW 88
// say ( markc , D4-Mark-Corn-2 ) ;
9303: LD_EXP 35
9307: PPUSH
9308: LD_STRING D4-Mark-Corn-2
9310: PPUSH
9311: CALL_OW 88
// dialogueoff ;
9315: CALL_OW 7
// end ; end ; tim :
9319: GO 10305
9321: LD_EXP 36
9325: DOUBLE
9326: EQUAL
9327: IFTRUE 9331
9329: GO 9477
9331: POP
// if gettag ( tmpar ) = 1 then
9332: LD_LOC 6
9336: PPUSH
9337: CALL_OW 110
9341: PUSH
9342: LD_INT 1
9344: EQUAL
9345: IFFALSE 9475
// begin settag ( tmpar , 2 ) ;
9347: LD_LOC 6
9351: PPUSH
9352: LD_INT 2
9354: PPUSH
9355: CALL_OW 109
// if tim in mojivip then
9359: LD_EXP 36
9363: PUSH
9364: LD_EXP 45
9368: IN
9369: IFFALSE 9433
// begin setside ( tim , al ) ;
9371: LD_EXP 36
9375: PPUSH
9376: LD_EXP 2
9380: PPUSH
9381: CALL_OW 235
// contacted = contacted + 1 ;
9385: LD_ADDR_EXP 24
9389: PUSH
9390: LD_EXP 24
9394: PUSH
9395: LD_INT 1
9397: PLUS
9398: ST_TO_ADDR
// dialogueon ;
9399: CALL_OW 6
// say ( john , D3-Tim-JMM-1 ) ;
9403: LD_EXP 27
9407: PPUSH
9408: LD_STRING D3-Tim-JMM-1
9410: PPUSH
9411: CALL_OW 88
// say ( tim , D3-Tim-Glad-1 ) ;
9415: LD_EXP 36
9419: PPUSH
9420: LD_STRING D3-Tim-Glad-1
9422: PPUSH
9423: CALL_OW 88
// dialogueoff ;
9427: CALL_OW 7
// end else
9431: GO 9475
// begin vesel = tmpar ;
9433: LD_ADDR_LOC 7
9437: PUSH
9438: LD_LOC 6
9442: ST_TO_ADDR
// dialogueon ;
9443: CALL_OW 6
// say ( john , D4-Tim-JMM-1 ) ;
9447: LD_EXP 27
9451: PPUSH
9452: LD_STRING D4-Tim-JMM-1
9454: PPUSH
9455: CALL_OW 88
// say ( tim , D4-Tim-Glad-1 ) ;
9459: LD_EXP 36
9463: PPUSH
9464: LD_STRING D4-Tim-Glad-1
9466: PPUSH
9467: CALL_OW 88
// dialogueoff ;
9471: CALL_OW 7
// end ; end ; denis :
9475: GO 10305
9477: LD_EXP 37
9481: DOUBLE
9482: EQUAL
9483: IFTRUE 9487
9485: GO 9577
9487: POP
// if gettag ( tmpar ) = 1 then
9488: LD_LOC 6
9492: PPUSH
9493: CALL_OW 110
9497: PUSH
9498: LD_INT 1
9500: EQUAL
9501: IFFALSE 9575
// begin settag ( tmpar , 2 ) ;
9503: LD_LOC 6
9507: PPUSH
9508: LD_INT 2
9510: PPUSH
9511: CALL_OW 109
// contacted = contacted + 1 ;
9515: LD_ADDR_EXP 24
9519: PUSH
9520: LD_EXP 24
9524: PUSH
9525: LD_INT 1
9527: PLUS
9528: ST_TO_ADDR
// setside ( denis , al ) ;
9529: LD_EXP 37
9533: PPUSH
9534: LD_EXP 2
9538: PPUSH
9539: CALL_OW 235
// dialogueon ;
9543: CALL_OW 6
// say ( denis , D3-Denis-Den-1 ) ;
9547: LD_EXP 37
9551: PPUSH
9552: LD_STRING D3-Denis-Den-1
9554: PPUSH
9555: CALL_OW 88
// say ( john , D3-Denis-JMM-1 ) ;
9559: LD_EXP 27
9563: PPUSH
9564: LD_STRING D3-Denis-JMM-1
9566: PPUSH
9567: CALL_OW 88
// dialogueoff ;
9571: CALL_OW 7
// end ; yamoko :
9575: GO 10305
9577: LD_EXP 38
9581: DOUBLE
9582: EQUAL
9583: IFTRUE 9587
9585: GO 9713
9587: POP
// if gettag ( tmpar ) = 1 then
9588: LD_LOC 6
9592: PPUSH
9593: CALL_OW 110
9597: PUSH
9598: LD_INT 1
9600: EQUAL
9601: IFFALSE 9711
// begin settag ( tmpar , 2 ) ;
9603: LD_LOC 6
9607: PPUSH
9608: LD_INT 2
9610: PPUSH
9611: CALL_OW 109
// if yamoko in mojivip then
9615: LD_EXP 38
9619: PUSH
9620: LD_EXP 45
9624: IN
9625: IFFALSE 9677
// begin setside ( yamoko , al ) ;
9627: LD_EXP 38
9631: PPUSH
9632: LD_EXP 2
9636: PPUSH
9637: CALL_OW 235
// contacted = contacted + 1 ;
9641: LD_ADDR_EXP 24
9645: PUSH
9646: LD_EXP 24
9650: PUSH
9651: LD_INT 1
9653: PLUS
9654: ST_TO_ADDR
// dialogueon ;
9655: CALL_OW 6
// say ( yamoko , D3-Yamako-Yam-1 ) ;
9659: LD_EXP 38
9663: PPUSH
9664: LD_STRING D3-Yamako-Yam-1
9666: PPUSH
9667: CALL_OW 88
// dialogueoff ;
9671: CALL_OW 7
// end else
9675: GO 9711
// begin dialogueon ;
9677: CALL_OW 6
// say ( yamoko , D4-Yamako-Yam-1 ) ;
9681: LD_EXP 38
9685: PPUSH
9686: LD_STRING D4-Yamako-Yam-1
9688: PPUSH
9689: CALL_OW 88
// dialogueoff ;
9693: CALL_OW 7
// setside ( yamoko , am ) ;
9697: LD_EXP 38
9701: PPUSH
9702: LD_EXP 1
9706: PPUSH
9707: CALL_OW 235
// end ; end ; gary :
9711: GO 10305
9713: LD_EXP 39
9717: DOUBLE
9718: EQUAL
9719: IFTRUE 9723
9721: GO 9861
9723: POP
// if gettag ( tmpar ) = 1 then
9724: LD_LOC 6
9728: PPUSH
9729: CALL_OW 110
9733: PUSH
9734: LD_INT 1
9736: EQUAL
9737: IFFALSE 9859
// begin settag ( tmpar , 2 ) ;
9739: LD_LOC 6
9743: PPUSH
9744: LD_INT 2
9746: PPUSH
9747: CALL_OW 109
// if gary in mojivip then
9751: LD_EXP 39
9755: PUSH
9756: LD_EXP 45
9760: IN
9761: IFFALSE 9825
// begin setside ( gary , al ) ;
9763: LD_EXP 39
9767: PPUSH
9768: LD_EXP 2
9772: PPUSH
9773: CALL_OW 235
// contacted = contacted + 1 ;
9777: LD_ADDR_EXP 24
9781: PUSH
9782: LD_EXP 24
9786: PUSH
9787: LD_INT 1
9789: PLUS
9790: ST_TO_ADDR
// dialogueon ;
9791: CALL_OW 6
// say ( gary , D3-Gary-Gary-1 ) ;
9795: LD_EXP 39
9799: PPUSH
9800: LD_STRING D3-Gary-Gary-1
9802: PPUSH
9803: CALL_OW 88
// say ( john , D3-Gary-JMM-1 ) ;
9807: LD_EXP 27
9811: PPUSH
9812: LD_STRING D3-Gary-JMM-1
9814: PPUSH
9815: CALL_OW 88
// dialogueoff ;
9819: CALL_OW 7
// end else
9823: GO 9859
// begin dialogueon ;
9825: CALL_OW 6
// say ( gary , D4-Gary-Gary-1 ) ;
9829: LD_EXP 39
9833: PPUSH
9834: LD_STRING D4-Gary-Gary-1
9836: PPUSH
9837: CALL_OW 88
// dialogueoff ;
9841: CALL_OW 7
// setside ( gary , am ) ;
9845: LD_EXP 39
9849: PPUSH
9850: LD_EXP 1
9854: PPUSH
9855: CALL_OW 235
// end ; end ; simms :
9859: GO 10305
9861: LD_EXP 40
9865: DOUBLE
9866: EQUAL
9867: IFTRUE 9871
9869: GO 9961
9871: POP
// if gettag ( tmpar ) = 1 then
9872: LD_LOC 6
9876: PPUSH
9877: CALL_OW 110
9881: PUSH
9882: LD_INT 1
9884: EQUAL
9885: IFFALSE 9959
// begin settag ( tmpar , 2 ) ;
9887: LD_LOC 6
9891: PPUSH
9892: LD_INT 2
9894: PPUSH
9895: CALL_OW 109
// contacted = contacted + 1 ;
9899: LD_ADDR_EXP 24
9903: PUSH
9904: LD_EXP 24
9908: PUSH
9909: LD_INT 1
9911: PLUS
9912: ST_TO_ADDR
// setside ( simms , al ) ;
9913: LD_EXP 40
9917: PPUSH
9918: LD_EXP 2
9922: PPUSH
9923: CALL_OW 235
// dialogueon ;
9927: CALL_OW 6
// say ( simms , D3-Simms-Sim-1 ) ;
9931: LD_EXP 40
9935: PPUSH
9936: LD_STRING D3-Simms-Sim-1
9938: PPUSH
9939: CALL_OW 88
// say ( john , D3-Simms-JMM-1 ) ;
9943: LD_EXP 27
9947: PPUSH
9948: LD_STRING D3-Simms-JMM-1
9950: PPUSH
9951: CALL_OW 88
// dialogueoff ;
9955: CALL_OW 7
// end ; else
9959: GO 10305
9961: POP
// if gettag ( tmpar ) = 1 then
9962: LD_LOC 6
9966: PPUSH
9967: CALL_OW 110
9971: PUSH
9972: LD_INT 1
9974: EQUAL
9975: IFFALSE 10305
// begin settag ( tmpar , 2 ) ;
9977: LD_LOC 6
9981: PPUSH
9982: LD_INT 2
9984: PPUSH
9985: CALL_OW 109
// if ( takoviti [ tmpar ] in moji ) or ( takoviti [ tmpar ] in mojivip ) then
9989: LD_EXP 26
9993: PUSH
9994: LD_LOC 6
9998: ARRAY
9999: PUSH
10000: LD_EXP 44
10004: IN
10005: PUSH
10006: LD_EXP 26
10010: PUSH
10011: LD_LOC 6
10015: ARRAY
10016: PUSH
10017: LD_EXP 45
10021: IN
10022: OR
10023: IFFALSE 10160
// begin setside ( takoviti [ tmpar ] , al ) ;
10025: LD_EXP 26
10029: PUSH
10030: LD_LOC 6
10034: ARRAY
10035: PPUSH
10036: LD_EXP 2
10040: PPUSH
10041: CALL_OW 235
// contacted = contacted + 1 ;
10045: LD_ADDR_EXP 24
10049: PUSH
10050: LD_EXP 24
10054: PUSH
10055: LD_INT 1
10057: PLUS
10058: ST_TO_ADDR
// if getsex ( takoviti [ tmpar ] ) = sex_male then
10059: LD_EXP 26
10063: PUSH
10064: LD_LOC 6
10068: ARRAY
10069: PPUSH
10070: CALL_OW 258
10074: PUSH
10075: LD_INT 1
10077: EQUAL
10078: IFFALSE 10120
// begin dialogueon ;
10080: CALL_OW 6
// say ( takoviti [ tmpar ] , D3-Soldier1-Sol1-1 ) ;
10084: LD_EXP 26
10088: PUSH
10089: LD_LOC 6
10093: ARRAY
10094: PPUSH
10095: LD_STRING D3-Soldier1-Sol1-1
10097: PPUSH
10098: CALL_OW 88
// say ( john , D3-Soldier1-JMM-1 ) ;
10102: LD_EXP 27
10106: PPUSH
10107: LD_STRING D3-Soldier1-JMM-1
10109: PPUSH
10110: CALL_OW 88
// dialogueoff ;
10114: CALL_OW 7
// end else
10118: GO 10158
// begin dialogueon ;
10120: CALL_OW 6
// say ( takoviti [ tmpar ] , D3-Soldier2-Fsol2-1 ) ;
10124: LD_EXP 26
10128: PUSH
10129: LD_LOC 6
10133: ARRAY
10134: PPUSH
10135: LD_STRING D3-Soldier2-Fsol2-1
10137: PPUSH
10138: CALL_OW 88
// say ( john , D3-Soldier2-JMM-1 ) ;
10142: LD_EXP 27
10146: PPUSH
10147: LD_STRING D3-Soldier2-JMM-1
10149: PPUSH
10150: CALL_OW 88
// dialogueoff ;
10154: CALL_OW 7
// end ; end else
10158: GO 10305
// begin vesel = tmpar ;
10160: LD_ADDR_LOC 7
10164: PUSH
10165: LD_LOC 6
10169: ST_TO_ADDR
// if getsex ( takoviti [ tmpar ] ) = sex_female then
10170: LD_EXP 26
10174: PUSH
10175: LD_LOC 6
10179: ARRAY
10180: PPUSH
10181: CALL_OW 258
10185: PUSH
10186: LD_INT 2
10188: EQUAL
10189: IFFALSE 10249
// begin dialogueon ;
10191: CALL_OW 6
// say ( takoviti [ tmpar ] , D4-Soldier1-FSol1-1 ) ;
10195: LD_EXP 26
10199: PUSH
10200: LD_LOC 6
10204: ARRAY
10205: PPUSH
10206: LD_STRING D4-Soldier1-FSol1-1
10208: PPUSH
10209: CALL_OW 88
// say ( john , D4-Soldier1-JMM-1 ) ;
10213: LD_EXP 27
10217: PPUSH
10218: LD_STRING D4-Soldier1-JMM-1
10220: PPUSH
10221: CALL_OW 88
// say ( takoviti [ tmpar ] , D4-Soldier1-FSol1-2 ) ;
10225: LD_EXP 26
10229: PUSH
10230: LD_LOC 6
10234: ARRAY
10235: PPUSH
10236: LD_STRING D4-Soldier1-FSol1-2
10238: PPUSH
10239: CALL_OW 88
// dialogueoff ;
10243: CALL_OW 7
// end else
10247: GO 10305
// begin dialogueon ;
10249: CALL_OW 6
// say ( takoviti [ tmpar ] , D4-Soldier2-Sol1-1 ) ;
10253: LD_EXP 26
10257: PUSH
10258: LD_LOC 6
10262: ARRAY
10263: PPUSH
10264: LD_STRING D4-Soldier2-Sol1-1
10266: PPUSH
10267: CALL_OW 88
// say ( john , D4-Soldier2-JMM-1 ) ;
10271: LD_EXP 27
10275: PPUSH
10276: LD_STRING D4-Soldier2-JMM-1
10278: PPUSH
10279: CALL_OW 88
// say ( takoviti [ tmpar ] , D4-Soldier2-Sol2-1 ) ;
10283: LD_EXP 26
10287: PUSH
10288: LD_LOC 6
10292: ARRAY
10293: PPUSH
10294: LD_STRING D4-Soldier2-Sol2-1
10296: PPUSH
10297: CALL_OW 88
// dialogueoff ;
10301: CALL_OW 7
// end ; end ; end ; end ; enable ;
10305: ENABLE
// end ;
10306: END
// on enterbuilding ( buil , un ) do if ( un = john ) and ( buil = amlab ) then
10307: LD_VAR 0 2
10311: PUSH
10312: LD_EXP 27
10316: EQUAL
10317: PUSH
10318: LD_VAR 0 1
10322: PUSH
10323: LD_INT 47
10325: EQUAL
10326: AND
10327: IFFALSE 10366
// begin setclass ( john , class_bazooker ) ;
10329: LD_EXP 27
10333: PPUSH
10334: LD_INT 9
10336: PPUSH
10337: CALL_OW 336
// settech ( tech_soporific , al , state_researched ) ;
10341: LD_INT 13
10343: PPUSH
10344: LD_EXP 2
10348: PPUSH
10349: LD_INT 2
10351: PPUSH
10352: CALL_OW 322
// changemissionobjectives ( M1a ) ;
10356: LD_STRING M1a
10358: PPUSH
10359: CALL_OW 337
// enable ( 02 ) ;
10363: LD_INT 2
10365: ENABLE_MARKED
// end ; end_of_file
10366: PPOPN 2
10368: END
// export killx , killy ; on humandestroyed ( un , side , nation , x , y , direction , sex , class ) do if ( penalty < maxpenalty ) and ( ( side = am ) or ( side = oth ) ) then
10369: LD_EXP 21
10373: PUSH
10374: LD_EXP 22
10378: LESS
10379: PUSH
10380: LD_VAR 0 2
10384: PUSH
10385: LD_EXP 1
10389: EQUAL
10390: PUSH
10391: LD_VAR 0 2
10395: PUSH
10396: LD_EXP 3
10400: EQUAL
10401: OR
10402: AND
10403: IFFALSE 10487
// begin penalty = penalty + [ 10 , 8 , 6 ] [ difficulty ] ;
10405: LD_ADDR_EXP 21
10409: PUSH
10410: LD_EXP 21
10414: PUSH
10415: LD_INT 10
10417: PUSH
10418: LD_INT 8
10420: PUSH
10421: LD_INT 6
10423: PUSH
10424: EMPTY
10425: LIST
10426: LIST
10427: LIST
10428: PUSH
10429: LD_OWVAR 67
10433: ARRAY
10434: PLUS
10435: ST_TO_ADDR
// if debug then
10436: LD_EXP 19
10440: IFFALSE 10455
// msg ( penalty:  & penalty ) ;
10442: LD_STRING penalty: 
10444: PUSH
10445: LD_EXP 21
10449: STR
10450: PPUSH
10451: CALL_OW 100
// if penalty >= maxpenalty then
10455: LD_EXP 21
10459: PUSH
10460: LD_EXP 22
10464: GREATEREQUAL
10465: IFFALSE 10487
// begin killx = x ;
10467: LD_ADDR_EXP 54
10471: PUSH
10472: LD_VAR 0 4
10476: ST_TO_ADDR
// killy = y ;
10477: LD_ADDR_EXP 55
10481: PUSH
10482: LD_VAR 0 5
10486: ST_TO_ADDR
// end end ;
10487: PPOPN 8
10489: END
// on unitgoestored ( un ) do if ( gettype ( un ) = unit_vehicle ) and ( penalty < maxpenalty ) and ( ( getside ( un ) = am ) or ( getside ( un ) = oth ) ) then
10490: LD_VAR 0 1
10494: PPUSH
10495: CALL_OW 247
10499: PUSH
10500: LD_INT 2
10502: EQUAL
10503: PUSH
10504: LD_EXP 21
10508: PUSH
10509: LD_EXP 22
10513: LESS
10514: AND
10515: PUSH
10516: LD_VAR 0 1
10520: PPUSH
10521: CALL_OW 255
10525: PUSH
10526: LD_EXP 1
10530: EQUAL
10531: PUSH
10532: LD_VAR 0 1
10536: PPUSH
10537: CALL_OW 255
10541: PUSH
10542: LD_EXP 3
10546: EQUAL
10547: OR
10548: AND
10549: IFFALSE 10643
// begin penalty = penalty + [ 8 , 6 , 4 ] [ difficulty ] ;
10551: LD_ADDR_EXP 21
10555: PUSH
10556: LD_EXP 21
10560: PUSH
10561: LD_INT 8
10563: PUSH
10564: LD_INT 6
10566: PUSH
10567: LD_INT 4
10569: PUSH
10570: EMPTY
10571: LIST
10572: LIST
10573: LIST
10574: PUSH
10575: LD_OWVAR 67
10579: ARRAY
10580: PLUS
10581: ST_TO_ADDR
// if debug then
10582: LD_EXP 19
10586: IFFALSE 10601
// msg ( penalty:  & penalty ) ;
10588: LD_STRING penalty: 
10590: PUSH
10591: LD_EXP 21
10595: STR
10596: PPUSH
10597: CALL_OW 100
// if penalty >= maxpenalty then
10601: LD_EXP 21
10605: PUSH
10606: LD_EXP 22
10610: GREATEREQUAL
10611: IFFALSE 10643
// begin killx = getx ( un ) ;
10613: LD_ADDR_EXP 54
10617: PUSH
10618: LD_VAR 0 1
10622: PPUSH
10623: CALL_OW 250
10627: ST_TO_ADDR
// killy = gety ( un ) ;
10628: LD_ADDR_EXP 55
10632: PUSH
10633: LD_VAR 0 1
10637: PPUSH
10638: CALL_OW 251
10642: ST_TO_ADDR
// end end ;
10643: PPOPN 1
10645: END
// var guards ; every 0 0$1.2 trigger penalty >= maxpenalty do var tmp , tmp2 , tmp1 , rad ;
10646: LD_EXP 21
10650: PUSH
10651: LD_EXP 22
10655: GREATEREQUAL
10656: IFFALSE 11598
10658: GO 10660
10660: DISABLE
10661: LD_INT 0
10663: PPUSH
10664: PPUSH
10665: PPUSH
10666: PPUSH
// begin penalty = 0 ;
10667: LD_ADDR_EXP 21
10671: PUSH
10672: LD_INT 0
10674: ST_TO_ADDR
// rad = 5 ;
10675: LD_ADDR_VAR 0 4
10679: PUSH
10680: LD_INT 5
10682: ST_TO_ADDR
// tmp1 = [ ] ;
10683: LD_ADDR_VAR 0 3
10687: PUSH
10688: EMPTY
10689: ST_TO_ADDR
// while ( ( 0 + tmp1 ) < 5 ) and ( rad < 25 ) do
10690: LD_INT 0
10692: PUSH
10693: LD_VAR 0 3
10697: PLUS
10698: PUSH
10699: LD_INT 5
10701: LESS
10702: PUSH
10703: LD_VAR 0 4
10707: PUSH
10708: LD_INT 25
10710: LESS
10711: AND
10712: IFFALSE 10802
// begin rad = rad + 5 ;
10714: LD_ADDR_VAR 0 4
10718: PUSH
10719: LD_VAR 0 4
10723: PUSH
10724: LD_INT 5
10726: PLUS
10727: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , al ] , f_not , [ f_type , unit_building ] , [ f_ok ] , [ f_distxy , killx , killy , rad ] ] ) ;
10728: LD_ADDR_VAR 0 3
10732: PUSH
10733: LD_INT 22
10735: PUSH
10736: LD_EXP 2
10740: PUSH
10741: EMPTY
10742: LIST
10743: LIST
10744: PUSH
10745: LD_INT 3
10747: PUSH
10748: LD_INT 21
10750: PUSH
10751: LD_INT 3
10753: PUSH
10754: EMPTY
10755: LIST
10756: LIST
10757: PUSH
10758: LD_INT 50
10760: PUSH
10761: EMPTY
10762: LIST
10763: PUSH
10764: LD_INT 92
10766: PUSH
10767: LD_EXP 54
10771: PUSH
10772: LD_EXP 55
10776: PUSH
10777: LD_VAR 0 4
10781: PUSH
10782: EMPTY
10783: LIST
10784: LIST
10785: LIST
10786: LIST
10787: PUSH
10788: EMPTY
10789: LIST
10790: LIST
10791: LIST
10792: LIST
10793: LIST
10794: PPUSH
10795: CALL_OW 69
10799: ST_TO_ADDR
// end ;
10800: GO 10690
// uc_side = am ;
10802: LD_ADDR_OWVAR 20
10806: PUSH
10807: LD_EXP 1
10811: ST_TO_ADDR
// uc_nation = nation_american ;
10812: LD_ADDR_OWVAR 21
10816: PUSH
10817: LD_INT 1
10819: ST_TO_ADDR
// vc_control = control_manual ;
10820: LD_ADDR_OWVAR 38
10824: PUSH
10825: LD_INT 1
10827: ST_TO_ADDR
// vc_engine = engine_siberite ;
10828: LD_ADDR_OWVAR 39
10832: PUSH
10833: LD_INT 3
10835: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
10836: LD_ADDR_OWVAR 37
10840: PUSH
10841: LD_INT 3
10843: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10844: LD_ADDR_OWVAR 40
10848: PUSH
10849: LD_INT 4
10851: ST_TO_ADDR
// tmp = createvehicle ;
10852: LD_ADDR_VAR 0 1
10856: PUSH
10857: CALL_OW 45
10861: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
10862: LD_VAR 0 1
10866: PPUSH
10867: LD_INT 5
10869: PPUSH
10870: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
10874: LD_VAR 0 1
10878: PPUSH
10879: LD_INT 19
10881: PPUSH
10882: LD_INT 0
10884: PPUSH
10885: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
10889: LD_INT 1
10891: PPUSH
10892: LD_INT 8
10894: PPUSH
10895: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10899: CALL_OW 44
10903: PPUSH
10904: LD_VAR 0 1
10908: PPUSH
10909: CALL_OW 52
// tmp2 = [ tmp ] ;
10913: LD_ADDR_VAR 0 2
10917: PUSH
10918: LD_VAR 0 1
10922: PUSH
10923: EMPTY
10924: LIST
10925: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
10926: LD_ADDR_OWVAR 37
10930: PUSH
10931: LD_INT 3
10933: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10934: LD_ADDR_OWVAR 40
10938: PUSH
10939: LD_INT 4
10941: ST_TO_ADDR
// tmp = createvehicle ;
10942: LD_ADDR_VAR 0 1
10946: PUSH
10947: CALL_OW 45
10951: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
10952: LD_VAR 0 1
10956: PPUSH
10957: LD_INT 5
10959: PPUSH
10960: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
10964: LD_VAR 0 1
10968: PPUSH
10969: LD_INT 19
10971: PPUSH
10972: LD_INT 0
10974: PPUSH
10975: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
10979: LD_INT 1
10981: PPUSH
10982: LD_INT 8
10984: PPUSH
10985: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10989: CALL_OW 44
10993: PPUSH
10994: LD_VAR 0 1
10998: PPUSH
10999: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11003: LD_ADDR_VAR 0 2
11007: PUSH
11008: LD_VAR 0 2
11012: PUSH
11013: LD_VAR 0 1
11017: PUSH
11018: EMPTY
11019: LIST
11020: ADD
11021: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11022: LD_ADDR_OWVAR 37
11026: PUSH
11027: LD_INT 3
11029: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11030: LD_ADDR_OWVAR 40
11034: PUSH
11035: LD_INT 4
11037: ST_TO_ADDR
// tmp = createvehicle ;
11038: LD_ADDR_VAR 0 1
11042: PUSH
11043: CALL_OW 45
11047: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11048: LD_VAR 0 1
11052: PPUSH
11053: LD_INT 5
11055: PPUSH
11056: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11060: LD_VAR 0 1
11064: PPUSH
11065: LD_INT 19
11067: PPUSH
11068: LD_INT 0
11070: PPUSH
11071: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11075: LD_INT 1
11077: PPUSH
11078: LD_INT 8
11080: PPUSH
11081: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11085: CALL_OW 44
11089: PPUSH
11090: LD_VAR 0 1
11094: PPUSH
11095: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11099: LD_ADDR_VAR 0 2
11103: PUSH
11104: LD_VAR 0 2
11108: PUSH
11109: LD_VAR 0 1
11113: PUSH
11114: EMPTY
11115: LIST
11116: ADD
11117: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11118: LD_ADDR_OWVAR 37
11122: PUSH
11123: LD_INT 3
11125: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11126: LD_ADDR_OWVAR 40
11130: PUSH
11131: LD_INT 4
11133: ST_TO_ADDR
// tmp = createvehicle ;
11134: LD_ADDR_VAR 0 1
11138: PUSH
11139: CALL_OW 45
11143: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11144: LD_VAR 0 1
11148: PPUSH
11149: LD_INT 5
11151: PPUSH
11152: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11156: LD_VAR 0 1
11160: PPUSH
11161: LD_INT 19
11163: PPUSH
11164: LD_INT 0
11166: PPUSH
11167: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11171: LD_INT 1
11173: PPUSH
11174: LD_INT 8
11176: PPUSH
11177: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11181: CALL_OW 44
11185: PPUSH
11186: LD_VAR 0 1
11190: PPUSH
11191: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11195: LD_ADDR_VAR 0 2
11199: PUSH
11200: LD_VAR 0 2
11204: PUSH
11205: LD_VAR 0 1
11209: PUSH
11210: EMPTY
11211: LIST
11212: ADD
11213: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11214: LD_ADDR_OWVAR 37
11218: PUSH
11219: LD_INT 3
11221: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11222: LD_ADDR_OWVAR 40
11226: PUSH
11227: LD_INT 4
11229: ST_TO_ADDR
// tmp = createvehicle ;
11230: LD_ADDR_VAR 0 1
11234: PUSH
11235: CALL_OW 45
11239: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11240: LD_VAR 0 1
11244: PPUSH
11245: LD_INT 5
11247: PPUSH
11248: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11252: LD_VAR 0 1
11256: PPUSH
11257: LD_INT 19
11259: PPUSH
11260: LD_INT 0
11262: PPUSH
11263: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11267: LD_INT 1
11269: PPUSH
11270: LD_INT 8
11272: PPUSH
11273: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11277: CALL_OW 44
11281: PPUSH
11282: LD_VAR 0 1
11286: PPUSH
11287: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11291: LD_ADDR_VAR 0 2
11295: PUSH
11296: LD_VAR 0 2
11300: PUSH
11301: LD_VAR 0 1
11305: PUSH
11306: EMPTY
11307: LIST
11308: ADD
11309: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
11310: LD_ADDR_OWVAR 37
11314: PUSH
11315: LD_INT 4
11317: ST_TO_ADDR
// vc_weapon = us_heavy_gun ;
11318: LD_ADDR_OWVAR 40
11322: PUSH
11323: LD_INT 6
11325: ST_TO_ADDR
// tmp = createvehicle ;
11326: LD_ADDR_VAR 0 1
11330: PUSH
11331: CALL_OW 45
11335: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11336: LD_VAR 0 1
11340: PPUSH
11341: LD_INT 5
11343: PPUSH
11344: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11348: LD_VAR 0 1
11352: PPUSH
11353: LD_INT 19
11355: PPUSH
11356: LD_INT 0
11358: PPUSH
11359: CALL_OW 49
// preparemechanic ( sex_male , 9 ) ;
11363: LD_INT 1
11365: PPUSH
11366: LD_INT 9
11368: PPUSH
11369: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11373: CALL_OW 44
11377: PPUSH
11378: LD_VAR 0 1
11382: PPUSH
11383: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11387: LD_ADDR_VAR 0 2
11391: PUSH
11392: LD_VAR 0 2
11396: PUSH
11397: LD_VAR 0 1
11401: PUSH
11402: EMPTY
11403: LIST
11404: ADD
11405: ST_TO_ADDR
// guards = tmp2 ;
11406: LD_ADDR_LOC 8
11410: PUSH
11411: LD_VAR 0 2
11415: ST_TO_ADDR
// for tmp in tmp1 do
11416: LD_ADDR_VAR 0 1
11420: PUSH
11421: LD_VAR 0 3
11425: PUSH
11426: FOR_IN
11427: IFFALSE 11459
// begin addcomattackunit ( tmp2 , tmp ) ;
11429: LD_VAR 0 2
11433: PPUSH
11434: LD_VAR 0 1
11438: PPUSH
11439: CALL_OW 175
// priorityattack ( am , tmp ) ;
11443: LD_EXP 1
11447: PPUSH
11448: LD_VAR 0 1
11452: PPUSH
11453: CALL_OW 470
// end ;
11457: GO 11426
11459: POP
11460: POP
// while getlives ( tmp1 ) > 0 do
11461: LD_VAR 0 3
11465: PPUSH
11466: CALL_OW 256
11470: PUSH
11471: LD_INT 0
11473: GREATER
11474: IFFALSE 11508
// begin wait ( 0 0$1 ) ;
11476: LD_INT 35
11478: PPUSH
11479: CALL_OW 67
// if debug then
11483: LD_EXP 19
11487: IFFALSE 11506
// debug_strings = [ cile: , tmp1 ] ;
11489: LD_ADDR_OWVAR 48
11493: PUSH
11494: LD_STRING cile:
11496: PUSH
11497: LD_VAR 0 3
11501: PUSH
11502: EMPTY
11503: LIST
11504: LIST
11505: ST_TO_ADDR
// end ;
11506: GO 11461
// if debug then
11508: LD_EXP 19
11512: IFFALSE 11521
// msg ( lets get off ) ;
11514: LD_STRING lets get off
11516: PPUSH
11517: CALL_OW 100
// for tmp = 1 to 6 do
11521: LD_ADDR_VAR 0 1
11525: PUSH
11526: DOUBLE
11527: LD_INT 1
11529: DEC
11530: ST_TO_ADDR
11531: LD_INT 6
11533: PUSH
11534: FOR_TO
11535: IFFALSE 11584
// commovexy ( guards [ tmp ] , guard_out_ [ tmp ] [ 1 ] , guard_out_ [ tmp ] [ 2 ] ) ;
11537: LD_LOC 8
11541: PUSH
11542: LD_VAR 0 1
11546: ARRAY
11547: PPUSH
11548: LD_EXP 20
11552: PUSH
11553: LD_VAR 0 1
11557: ARRAY
11558: PUSH
11559: LD_INT 1
11561: ARRAY
11562: PPUSH
11563: LD_EXP 20
11567: PUSH
11568: LD_VAR 0 1
11572: ARRAY
11573: PUSH
11574: LD_INT 2
11576: ARRAY
11577: PPUSH
11578: CALL_OW 111
11582: GO 11534
11584: POP
11585: POP
// enable ( 04 ) ;
11586: LD_INT 4
11588: ENABLE_MARKED
// achjo = 0 ;
11589: LD_ADDR_LOC 9
11593: PUSH
11594: LD_INT 0
11596: ST_TO_ADDR
// enable ;
11597: ENABLE
// end ;
11598: PPOPN 4
11600: END
// var achjo ; every 0 0$1 marked 04 do var tmp , tmp1 ;
11601: GO 11603
11603: DISABLE
11604: LD_INT 0
11606: PPUSH
11607: PPUSH
// begin tmp = filterunitsinarea ( guard_out , [ [ f_side , am ] ] ) ;
11608: LD_ADDR_VAR 0 1
11612: PUSH
11613: LD_INT 20
11615: PPUSH
11616: LD_INT 22
11618: PUSH
11619: LD_EXP 1
11623: PUSH
11624: EMPTY
11625: LIST
11626: LIST
11627: PUSH
11628: EMPTY
11629: LIST
11630: PPUSH
11631: CALL_OW 70
11635: ST_TO_ADDR
// for tmp1 in tmp do
11636: LD_ADDR_VAR 0 2
11640: PUSH
11641: LD_VAR 0 1
11645: PUSH
11646: FOR_IN
11647: IFFALSE 11660
// destroyunit ( tmp1 ) ;
11649: LD_VAR 0 2
11653: PPUSH
11654: CALL_OW 65
11658: GO 11646
11660: POP
11661: POP
// if unitfilter ( guards , [ [ f_ok ] ] ) then
11662: LD_LOC 8
11666: PPUSH
11667: LD_INT 50
11669: PUSH
11670: EMPTY
11671: LIST
11672: PUSH
11673: EMPTY
11674: LIST
11675: PPUSH
11676: CALL_OW 72
11680: IFFALSE 11778
// begin achjo = achjo + 1 ;
11682: LD_ADDR_LOC 9
11686: PUSH
11687: LD_LOC 9
11691: PUSH
11692: LD_INT 1
11694: PLUS
11695: ST_TO_ADDR
// if ( achjo mod 5 ) = 0 then
11696: LD_LOC 9
11700: PUSH
11701: LD_INT 5
11703: MOD
11704: PUSH
11705: LD_INT 0
11707: EQUAL
11708: IFFALSE 11775
// for tmp = 1 to 6 do
11710: LD_ADDR_VAR 0 1
11714: PUSH
11715: DOUBLE
11716: LD_INT 1
11718: DEC
11719: ST_TO_ADDR
11720: LD_INT 6
11722: PUSH
11723: FOR_TO
11724: IFFALSE 11773
// commovexy ( guards [ tmp ] , guard_out_ [ tmp ] [ 1 ] , guard_out_ [ tmp ] [ 2 ] ) ;
11726: LD_LOC 8
11730: PUSH
11731: LD_VAR 0 1
11735: ARRAY
11736: PPUSH
11737: LD_EXP 20
11741: PUSH
11742: LD_VAR 0 1
11746: ARRAY
11747: PUSH
11748: LD_INT 1
11750: ARRAY
11751: PPUSH
11752: LD_EXP 20
11756: PUSH
11757: LD_VAR 0 1
11761: ARRAY
11762: PUSH
11763: LD_INT 2
11765: ARRAY
11766: PPUSH
11767: CALL_OW 111
11771: GO 11723
11773: POP
11774: POP
// enable ;
11775: ENABLE
// end else
11776: GO 11778
// ; end ;
11778: PPOPN 2
11780: END
